-
Notifications
You must be signed in to change notification settings - Fork 31
/
hwacha_listener.py
69 lines (55 loc) · 2.26 KB
/
hwacha_listener.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
import argparse
import sys
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
from SocketServer import ThreadingMixIn
from urlparse import urlparse
CRED = '\033[91m'
CEND = '\033[0m'
CGREEN = '\33[32m'
CYELLOW = '\33[33m'
class Handler(SimpleHTTPRequestHandler):
def do_GET(self):
"""Serve a GET request."""
SimpleHTTPRequestHandler.do_GET(self)
return
def url_parse(self):
query = urlparse(self.path).query
query_components = dict(qc.split("=") for qc in query.split("&"))
return query_components
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
"""Handle requests in a separate thread."""
pass
def banner():
art = CGREEN + """
_____ _
/ ___| (_)
\ `--. ___ _ ____ _____ _ __ _ __ ___ _ __ __ _ _ _ _ _ __
`--. \/ _ \ '__\ \ / / _ \ '__| '_ \ / _ \ '_ \ / _` | | | | | '_ \
/\__/ / __/ | \ V / __/ | | |_) | __/ | | | (_| | |_| | | | | |
\____/ \___|_| \_/ \___|_| | .__/ \___|_| |_|\__, |\__,_|_|_| |_|
| | __/ |
|_| |___/
""" + CEND
return art
def help():
print CGREEN + 'Usage: hwacha_listener.py [-h] -a ADDRESS -p PORT' + CEND
print CRED + 'Example usage:' + CEND
print CYELLOW + 'python hwacha_listener.py -a 0.0.0.0 -p 8080' + CEND
print CRED + 'For further explanation use:' + CEND
print CYELLOW + 'python hwacha_listener.py -h' + CEND
def main():
print banner()
parser = argparse.ArgumentParser(
description='A separated, decoupled listener for Mimipenguin')
parser.add_argument('-a', '--address', help='Listening host IP address', required=False, default=False)
parser.add_argument('-p', '--port', help='Port for the listener', required=False, default=False)
args = parser.parse_args()
if not args or not args.address or not args.port:
help()
sys.exit()
server = ThreadedHTTPServer((args.address, int(args.port)), Handler)
print 'Starting server, use <Ctrl-C> to stop'
server.serve_forever()
if __name__ == '__main__':
main()