-
Notifications
You must be signed in to change notification settings - Fork 0
/
qvqweb.py
69 lines (58 loc) · 2.17 KB
/
qvqweb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/python
import tornado.ioloop
import tornado.web
import tornado.options
import sys
from database import UrlLogs, DomainLogs, DNSLogs, User
tornado.options.define("port", default=8020, type=int)
tornado.options.parse_command_line()
class Record(tornado.web.RequestHandler):
def prepare(self):
domain_query = DomainLogs.select().where(DomainLogs.domain == self.request.host).first()
if not domain_query:
user = User.select().where(User.domain == self.request.host.split(".")[-3]).first()
if not user:
return
domain_query = DomainLogs()
domain_query.user_id = user.id
domain_query.domain = self.request.host
domain_query.save()
log = DNSLogs()
log.ip = self.request.headers.get('X-Forwarded-For')
log.user_id = user.id
log.domain_id = domain_query.id
log.save()
if not self.request.uri == "/favicon.ico":
log = UrlLogs()
packet = "%s %s %s\n" % (self.request.method, self.request.uri, self.request.version)
for header in self.request.headers:
packet += "%s: %s\n" % (header, self.request.headers.get(header))
packet += "\n%s" % self.request.body
log.url = self.request.uri
log.ip = self.request.headers.get("X-Forwarded-For")
log.domain_id = domain_query.id
log.user_id = domain_query.user_id
log.packet = packet
log.save()
def get(self, *args, **kwargs):
self.write("QvQ !")
def post(self, *args, **kwargs):
self.get(*args, **kwargs)
def put(self, *args, **kwargs):
self.get(*args, **kwargs)
def options(self, *args, **kwargs):
self.get(*args, **kwargs)
def head(self, *args, **kwargs):
self.get(*args, **kwargs)
application = tornado.web.Application([
(r"^/(.*?)", Record),
], )
if __name__ == "__main__":
try:
application.listen(tornado.options.options.port)
tornado.ioloop.IOLoop.instance().start()
except:
import traceback
print(traceback.print_exc())
finally:
sys.exit(0)