Python 写的TCP Server端口转发,可用于协议分析

Python 写的TCP Server端口转发,可用于协议分析

 


#tcp server
import socket

host = '127.0.0.1'          #Local Server IP
host2 = '127.0.0.1'   #Real Server IP
port = 6001 #Local Server Port
port2 = 7001 #Real Server Port

def ProcData(data):
    return data
    #add more code....

print "Map Server start from " + host + ":" + str(port) +" to " + host2 + ":" + str(port2) +"\r\n"

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('127.0.0.1',port))
print "127.0.0.1 Server start at "+ str(port) +"\r\n"

client = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
client.connect((host2,port2))
print host +" Client connect to " + host2 + ":"+str(port2)+"\n"

server.listen(5)
ss, addr = server.accept()
print 'got connected from',addr

while 1:
    msg = ss.recv(20480)
    print "Get:"+repr(msg)+"\r\n"

    client.send(msg)
    #print "Client send data %s to "%repr(msg)
    buf=client.recv(20480)

    #print "Client recv data %s from "%repr(buf)
    ss.send(buf)
    print "Send:"+repr(buf)+"\r\n"


 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,为了实现局域网内没有外网的电脑连接上外网,我们可以使用 Python 实现一个简单的端口转发服务。下面是实现步骤: 1. 在拥有外网的电脑上安装 Python,打开命令行并输入以下命令安装 Twisted 模块 ``` pip install twisted ``` 2. 在拥有外网的电脑上创建一个名为 forward.py 的 Python 文件,并将以下代码复制到文件中: ```python from twisted.internet import reactor, protocol class ForwardServer(protocol.Protocol): def __init__(self): self.client = None def connectionMade(self): factory = protocol.ClientFactory() factory.protocol = ForwardClient factory.server = self reactor.connectTCP("目标主机地址", 目标口, factory) def dataReceived(self, data): if self.client: self.client.write(data) def connectionLost(self, reason): if self.client: self.client.loseConnection() class ForwardClient(protocol.Protocol): def connectionMade(self): self.factory.server.client = self def dataReceived(self, data): self.factory.server.write(data) def connectionLost(self, reason): self.factory.server.loseConnection() factory = protocol.ServerFactory() factory.protocol = ForwardServer reactor.listenTCP(本地口, factory) reactor.run() ``` 将 "目标主机地址" 替换为拥有外网的电脑的 IP 地址,将 "目标口" 替换为您要转发的口,例如 80(HTTP 口)或 443(HTTPS 口)。将 "本地口" 替换为本地电脑上要监听的口,例如 8080。 3. 保存 forward.py 文件并在拥有外网的电脑上运行它。可以使用以下命令: ``` python forward.py ``` 4. 在没有外网的电脑上打开浏览器并输入 "拥有外网的电脑的IP地址:本地口",例如 "192.168.1.100:8080",然后按回车键。如果一切正常,您应该能够访问 Internet 上的网站。 这就是实现局域网内没有外网的电脑连接上外网的端口转发服务的简单步骤。注意,这个示例只转发 TCP 流量,如果您需要转发 UDP 流量,则需要做一些修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值