Python 在套接字绑定到接口时处理IP地址更改
在Linux上使用Python:我有一个TCPSocket服务器,我想在eth0上侦听它,而没有其他接口。如果eth0没有地址,则套接字根本不应该侦听 我可以绑定到与eth0关联的IP地址,但如果该地址更改,我的套接字将不再接收连接。似乎没有简单的方法接收IP地址更改通知 我可以轮询eth0的IP地址,并在其更改时将套接字绑定到新地址。有没有更好的方法来实现这一点Python 在套接字绑定到接口时处理IP地址更改,python,sockets,networking,Python,Sockets,Networking,在Linux上使用Python:我有一个TCPSocket服务器,我想在eth0上侦听它,而没有其他接口。如果eth0没有地址,则套接字根本不应该侦听 我可以绑定到与eth0关联的IP地址,但如果该地址更改,我的套接字将不再接收连接。似乎没有简单的方法接收IP地址更改通知 我可以轮询eth0的IP地址,并在其更改时将套接字绑定到新地址。有没有更好的方法来实现这一点 我探索了SO_BINDTODEVICE,但这需要root权限。正如您所说,您似乎有两种解决方案: 轮询以获取接口的IP,当服务器发生
我探索了SO_BINDTODEVICE,但这需要root权限。正如您所说,您似乎有两种解决方案:
通过在github上搜索(IPv4地址添加/删除事件),您可以找到使用netlink的代码示例。在代码中启动套接字之前,您可以获得eth0的ip吗?此问题中投票最多的答案显示了如何使用C中的AF_netlink套接字在Linux上监视地址更改: