Python简单实现的代理服务器端口映射功能示例

  

本文实例讲述了Python简单实现的代理服务器端口映射功能。分享给大家供大家参考,具体如下:

  

  

1,模拟服务端代码

        导入系统   进口套接字   进口线程   #回复消息,原样返回   def replyMessage(康涅狄格州):   而真正的:   data=https://www.yisu.com/zixun/conn.recv (1024)   conn.send(数据)   如果data.decode () .lower()==霸偌?   打破   conn.close ()   def main ():   sockScr=socket.socket(插座。AF_INET socket.SOCK_STREAM)   sockScr。绑定(端口)(“)   sockScr.listen (200)   而真正的:   试一试:   康涅狄格州,addr=sockScr.accept ()   #只允许特定主机访问本服务器   如果addr [0]=> !   导入系统   进口套接字   进口线程   def中间(康涅狄格州,addr):   #面向服务器的插座   sockDst=socket.socket(插座。AF_INET socket.SOCK_STREAM)   sockDst.connect ((ipServer portServer))   而真正的:   data=https://www.yisu.com/zixun/conn.recv (1024) .decode ()   打印(“收到客户端消息:“+数据)   如果数据=https://www.yisu.com/zixun/='不要发给服务器”:   conn.send(“该消息已被代理服务器过滤”.encode ())   打印(“该消息已过滤”)   elif data.lower()==霸偌?   打印(str (addr) +“客户端关闭连接的)   打破   其他:   sockDst.send (data.encode ())   打印(已转发服务器”)   data_fromServer=sockDst.recv (1024) .decode ()   打印(“收到服务器回复的消息:“+ data_fromServer)   如果data_fromServer=='不要发给客户端”:   conn.send(“该消息已被代理服务器修改“.encode ())   打印(“消息已被篡改的)   其他:   conn.send (b 'Server回答:' + data_fromServer.encode ())   打印(已转发服务器消息给客户端”)   conn.close ()   sockDst.close ()   def main ():   sockScr=socket.socket(插座。AF_INET socket.SOCK_STREAM)   sockScr。绑定(”,portScr)   sockScr.listen (200)   打印(“代理已启动”)   而真正的:   试一试:   康涅狄格州,addr=sockScr.accept ()   t=线程。线程(目标=中间,arg游戏=(康涅狄格州,addr))   t.start ()   打印(“新客户:' + str (addr))   除了:   通过   if __name__==癬_main__”:   试一试:   #(本机IP地址,portScr) & lt;==祝辞(ipServer portServer)   #代理服务器监听端口   portScr=int (sys.argv [1])   #服务器IP地址与端口号   ipServer=sys.argv [2]   portServer=int (sys.argv [3])   main ()   除了:   print(某事错误)      之前      

3模拟客户端代码

        导入系统   进口套接字   def main ():   袜子=socket.socket(插座。AF_INET socket.SOCK_STREAM)   袜子。连接((ip、端口))   而真正的:   data=https://www.yisu.com/zixun/input('你想问:')   sock.send (data.encode ())   print (sock.recv (1024) .decode ())   如果data.lower()==霸偌?   打破   sock.close ()   if __name__==癬_main__”:   试一试:   #代理服务器的IP地址和端口号   ip=sys.argv [1]   端口=int (sys.argv [2])   main ()   除了:   print(某事错误)      之前      

  

 Python简单实现的代理服务器端口映射功能示例

  

  

从结果可以看的出,代理服务器代码能够对客户端和服务器之间的内容进行记录,也能够修改双方通信内容,这样实际存在潜在危险。只要代理服务想这样做,客户在网络上的通信就没有什么隐私可言了,因此如果涉及金钱交易,最好不要使用代理服务器。

  

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python套接字编程技巧总结》,《Python URL操作技巧总结》,《Python数据结构与算法教程》、《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

  

希望本文所述对大家Python程序设计有所帮助。

Python简单实现的代理服务器端口映射功能示例