proxy server
This commit is contained in:
parent
dd425f3572
commit
92d1b5e5c3
|
@ -1,91 +0,0 @@
|
|||
import sys
|
||||
import socket
|
||||
import threading
|
||||
|
||||
def server_loop(local_host, local_port, remote_host, remote_port, recieve_first):
|
||||
server = server.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
server.bind((local_host, local_port))
|
||||
print "Listening on %s:%d" % (local_host, local_port)
|
||||
server.listen(5)
|
||||
|
||||
while True:
|
||||
client_socket, addr = server.accept()
|
||||
print "Recieving data from %s:%d" % (addr[0], addr[1])
|
||||
|
||||
proxy_thread = threading.Thread(target=proxy_handler, args=(client_socket, remote_host, remote_port, recieve_first))
|
||||
proxy_thread.start()
|
||||
|
||||
|
||||
def proxy_handler(client_socket, remote_host, remote_port, recieve_first):
|
||||
remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
remote_socket.connect((remote_host, remote_port))
|
||||
|
||||
if recieve_first:
|
||||
remote_buffer = recieve_from(remote_socket)
|
||||
print(remote_buffer)
|
||||
|
||||
remote_buffer = response_handler(remote_buffer)
|
||||
if len(remote_buffer):
|
||||
print "Sending buffer"
|
||||
len(remote_buffer)
|
||||
client_socket.send(remote_buffer)
|
||||
while True:
|
||||
local_buffer = recieve_from(client_socket)
|
||||
if len(local_buffer):
|
||||
print(local_buffer)
|
||||
# je comprends plus a partir d ci
|
||||
local_buffer = response_handler(local_buffer)
|
||||
remote_socket.send(local_buffer)
|
||||
print "sent to remote"
|
||||
|
||||
remote_buffer = recieve_from(remote_socket)
|
||||
|
||||
if len(remote_buffer):
|
||||
print "printing remote buffer"
|
||||
print(remote_buffer)
|
||||
|
||||
remote_buffer = response_handler(remote_buffer)
|
||||
client_socket.send(remote_buffer)
|
||||
print "sent to localhost"
|
||||
|
||||
def recieve_from(connection):
|
||||
buffer = ""
|
||||
connection.settimeout(2)
|
||||
try:
|
||||
while True:
|
||||
data = connection.recv(4096)
|
||||
if not data:
|
||||
break
|
||||
buffer += data
|
||||
except:
|
||||
pass
|
||||
|
||||
return buffer
|
||||
|
||||
def request_handler(buffer):
|
||||
return buffer
|
||||
|
||||
def response_handler(buffer):
|
||||
return buffer
|
||||
|
||||
def main():
|
||||
local_host = sys.argv[1]
|
||||
local_port = int(sys.argv[2])
|
||||
|
||||
remote_host = sys.argv[3]
|
||||
remote_port = int(sys.argv[4])
|
||||
|
||||
recieve_first = sys.argv[5]
|
||||
|
||||
if recieve_first == True:
|
||||
recieve_first = True
|
||||
else:
|
||||
recieve_first = False
|
||||
|
||||
server_loop(local_host, local_port, remote_host, remote_port, recieve_first)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
main()
|
Loading…
Reference in a new issue