我想从使用TCP / IP作为客户端的网络获取包。
随着......
connect((TCP_IP, TCP_PORT))
...我可以更改对等地址的端口。但是我改变了本地计算机的端口?
编辑:我想使用带有四个端口的网卡。网卡连接到发送大量数据的测量设备。如何查看数据的位置?如何区分这四个端口?答案 0 :(得分:5)
假设您有一个名为sock
的套接字...使用socket.bind()
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
DESTINATION_ADDR = '1.1.1.1'
SOURCE_PORT, DESTINATION_PORT = 31415, 80
sock.bind(('0.0.0.0', SOURCE_PORT))
sock.connect((DESTINATION_ADDR, DESTINATION_PORT))
现在我运行tshark
(文字wireshark
)以查看该界面上的流量...
[mpenning@Bucksnort ~]$ sudo tshark -i eth0 tcp and port 31415
Capturing on eth0
0.000000 24.19.161.6 -> 1.1.1.1 TCP 31415 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=4228124209 TSER=0 WS=6
12.000009 24.19.161.6 -> 1.1.1.1 TCP 31415 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=4228127209 TSER=0 WS=6
36.000010 24.19.161.6 -> 1.1.1.1 TCP 31415 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=4228133209 TSER=0 WS=6
答案 1 :(得分:2)
网络适配器上的四个物理端口不与IP(和TCP / IP)的逻辑端口概念相关。< / p>
在我们进一步为您提供帮助之前,请说明这些物理端口的配置(即IP地址,子网等)。可能有一种方法可以在Python中执行您想要的操作:为流量选择四个端口中的一个。
答案 2 :(得分:0)
您可以分配TCP / IP客户端端口,但您不应该这样做,因为它没有任何意义。有关说明,请参阅TCP/IP Client (Ephemeral) Ports and Client/Server Application Port Use。