tornado限制访问次数和判断是否是真实浏览器访问

tornado第二篇学习,判断是否是浏览器访问,和判断访问的次数

判断是否浏览器访问,是通过头部文件的User-Agent进行对比,而判断次数是通过记录访问的ip次数得到的

# -*- coding:utf-8 -*-
#@Time : 2020/9/16 22:54
#@Author: 张君
#@File : url.py

import  tornado.web
import tornado.ioloop

user='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'
class AceesHandler(tornado.web.RequestHandler):
    def get(self,*args,**kwargs):
        #判断是否是浏览器fangwen
        head=self.request.headers['User-Agent']
        if head==user:
            self.write("访问正常")
        else:
            self.send_error(403)


iplist={} class loginHandler(tornado.web.RequestHandler): def get(self,*args,**kwargs): #获取ip地址 ip=self.request.remote_ip #如果有ip访问,就加1 num=iplist.get(ip,0)+1 #获取IP的number iplist[ip]=num print(iplist) #如果大于5,返回400,如果没有就提示没有超过限制 if iplist[ip]>5: self.send_error(400) else: self.write("没有超过限制") app=tornado.web.Application([ (r'/$',AceesHandler), (r'/login',loginHandler) ]) app.listen(8888) #监听 tornado.ioloop.IOLoop.instance().start()

 访问超限

 小知识 字典的get用法

num=iplist.get(ip,0)+1
get相当于一条if...else...语句,参数k在字典中,字典将返回list[k];如果参数k不在字典中则返回参数d,如果K在字典中则返回k对应的value值,比如

原文地址:https://www.cnblogs.com/chongyou/p/13682182.html