Skip to content

Instantly share code, notes, and snippets.

@rgerganov
Last active October 25, 2017 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rgerganov/a267580cbf5d67ccee0275df731b92cc to your computer and use it in GitHub Desktop.
Save rgerganov/a267580cbf5d67ccee0275df731b92cc to your computer and use it in GitHub Desktop.
Astra hack
#!/usr/bin/env python
import os
import socket
import threading
import SocketServer
class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
def send_response(self, resp):
self.request.sendall("HTTP/1.1 200 OK\r\n")
self.request.sendall("Date: Wed, 11 Oct 2017 13:52:19 GMT\r\n")
self.request.sendall("Content-Length: %d\r\n" % len(resp))
self.request.sendall("Content-Type: text/plain; charset=utf-8\r\n\r\n")
self.request.sendall(resp)
def handle(self):
data = self.request.recv(1024)
if data.startswith("GET /license/check/a"):
print "request from: %s" % self.client_address[0]
print data
for k,v in self.server.responses.iteritems():
if k in data:
self.send_response(v)
break
else:
self.request.close()
class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
def server_bind(self):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.bind(self.server_address)
def load_responses():
dir = os.path.dirname(os.path.realpath(__file__))
fpath = os.path.join(dir, "response.txt")
with open(fpath, "r") as f:
content = f.readlines()
content = [x.strip() for x in content]
result = dict(zip(content[0::2], content[1::2]))
print("Loaded responses:")
for k,v in result.iteritems():
print("%s -> %s" % (k, v))
return result
if __name__ == '__main__':
print("Starting server on port 80")
server = ThreadedTCPServer(("0.0.0.0", 80), ThreadedTCPRequestHandler)
server.responses = load_responses()
server.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment