proxy server

This commit is contained in:
Piks3l 2017-05-19 19:42:17 +02:00
parent 5df44c91d9
commit dd425f3572

View file

@ -1,59 +1,55 @@
import socket
HOST = ""
PORT = 8888
BUFF = 1024
class Forward():
def __init__(self):
self.forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.forward.bind(('', 9999))
self.forward.listen(5)
self.clientsock, self.clientaddr = self.forward.accept()
def forwarding(self):
stuff = self.recv(handle_client)
self.clientsock.send(self.stuff)
class Server():
#opening sockets
class Server_client():
def __init__(self, HOST, PORT):
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.s.bind((HOST, PORT))
print "Serving HTTP on port %s ..." % PORT
self.s.listen(5)
self.s_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.s_client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.s_client.bind((HOST, PORT))
print "Serving client HTTP on port %s ..." % PORT
self.s_client.listen(5)
print "Wainting for connection... listening on port", PORT
self.c, self.addr = self.s.accept()
self.c_client, self.addr_client = self.s_client.accept()
#handling client
def handle_client(self):
buffer = ""
self.c_client.send("Type something and press enter \n")
self.data = self.c_client.recv(1024)
buffer += self.data
print(buffer)
self.c_client.close()
return buffer
self.c.send("Please enter your name and press enter: \n")
name = self.c.recv(BUFF)
print "Client name is : ", name
print repr(name) + "recieved :" + repr(name)
while True:
self.c.send("\nNow each word you typed will be echo back to you.\n")
data = self.c.recv(BUFF)
print "received data:", data
self.c.send("You typed %s \n" % data)
self.c.close()
print self.addr, "- closed connection"
class Proxy():
def __init__(self, remote_host, remote_port):
self.remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.remote_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.remote_socket.bind((remote_host, remote_port))
print "Serving remote server on port %s... " % remote_port
self.remote_socket.listen(5)
print "Listening the remote server"
self.remote_client, self.remote_addr = self.remote_socket.accept()
def handle_proxy(self, buffer):
print "Inside handle proxy"
print(buffer)
self.remote_client.send(buffer)
self.remote_client.close()
if __name__ == '__main__':
s = Server("", 8888)
p = Forward("", 9999)
s.handle_client()
while True:
client = Server_client("", 8888)
buffer = client.handle_client()
a = Proxy("", 9999)
a.handle_proxy(buffer)