backup
Proxy.py
IzayoiSakuya
2016. 6. 13. 14:53
import socket import os import sys class Server(): def __init__(self,port): self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) self.s.bind(("",port)) self.s.listen(10) def Connect(self): self.client, self.addr = self.s.accept() print "[*] %s is connected."%(self.addr[0]) return self.client def FromUser(self): data = self.client.recv(65536) return data class Client(): def __init__(self,Host,Port): self.s = socket.socket() self.s.connect((Host,int(Port))) def FromServer(self): data = self.s.recv(65536) return data if len(sys.argv) != 4: print "[*] USAGE : %s LocalPort RemoteHost RemotePort"%(sys.argv[0]) exit(-1) User = Server(int(sys.argv[1])) while(1): User.Connect() pid = os.fork() if pid == 0: Server = Client(sys.argv[2],sys.argv[3]) pid = os.fork() if pid == 0: while (1): try: data = Server.FromServer() User.client.send(data) except: pass else: while(1): try: data = User.FromUser() Server.s.send(data+"\r\n") except: pass else: continue