python socket多网卡客户端、server端绑定ip

ZhangJian 2021-05-16 n次浏览 Python 编辑

ip.png

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5)
#客户端端口绑定0 默认随机一个可用的绑定起来
s.bind(("192.168.2.62",0))
s.connect(address)
print(s.getpeername())#远程ip端口
print(s.getsockname())#本地ip端口 
服务端
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#可绑定成指定的ip
s.bind(('0.0.0.0', 8080))
s.listen()
while True:
    sock, addr = s.accept()

绑定之后流量将从指定的ip网卡 获取本地所有ip

print(socket.gethostbyname_ex(socket.gethostname()))

结果:
('ZhangServer', [], ['192.168.3.128', '192.168.2.62'])
('ZhangJian', [], ['192.168.31.183'])

测试两次,第一个第二个结果排除后就是