Python套接字绑定到任何IP?

时间:2011-11-07 06:58:00

标签: python sockets

我有一个小的单面消息发送器,当我在代码中指定要连接的IP时工作,但是,我无法允许套接字接受来自任何IP的连接。这就是问题所在的界限。

mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2727 ) )

''适用于localhost,如果我手动输入IP,例如'192.168.1.106',它就可以工作,但是,我怎样才能让它对所有人开放?或者我使用错误的连接类型?

3 个答案:

答案 0 :(得分:35)

如果要绑定到所有可用的IPv4地址,请指定0.0.0.0作为您的IP地址。如果您位于路由器后面并希望您的套接字可以访问Internet,而不是仅在LAN上可用,则需要设置端口转发规则,以便LAN外的用户可以访问该服务。

有关0.0.0.0https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

的更多信息,请参阅以下ServerFault问题

答案 1 :(得分:13)

绑定到'''0.0.0.0'具有相同的效果,可以更轻松地过渡到IPv6。

根据操作系统的不同,打开socket.AF_INET6套接字会侦听IPv4和IPv6。

答案 2 :(得分:4)

绑定到0.0.0.0将允许它接受来自可以路由到它的任何IPv4地址的连接。