import os import tornado.gen import tornado.httpclient import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options from model.common.file_pid import PID from urls import urls from model.log import logger import requests import sys log = logger() iTime = 300 define("port", default=sys.argv[1], help="run on the given port", type=int) class HttpServerWrapper(tornado.web.Application): def __init__(self, port=80,debug=True): self.port = port handlers = urls r = requests.get("http://jsonip.com").json()['ip'] auth = True if r == '47.111.161.141' and sys.argv[1] == '8008' else False settings = { "port" : sys.argv[1], "auth": auth, "cookie_secret": "", "login_url": "", "autoreload": True, "debug": False, "allow_remote_access": True, "template_path": os.path.join(os.path.dirname(__file__), "templates"), "static_path": os.path.join(os.path.dirname(__file__), "templates") } super(HttpServerWrapper, self).__init__(handlers, **settings) def main(): PID.write() tornado.options.parse_command_line() http_server = tornado.httpserver.HTTPServer(HttpServerWrapper()) http_server.listen(options.port) log.info("server start, listening on port %s" % options.port) tornado.ioloop.IOLoop.current().start() if __name__ == '__main__': main()