【发布时间】:2014-07-17 14:00:35
【问题描述】:
在 Linux 上使用 Python:我有一个 TCPSocket 服务器,我想在 eth0 上监听,但没有其他接口。如果 eth0 没有地址,则套接字根本不应该监听。
我可以绑定到与 eth0 关联的 IP 地址,但如果该地址发生更改,我的套接字将不再接收连接。似乎没有简单的方法来接收 IP 地址更改通知。
我可以轮询 eth0 的 IP 地址,并在套接字更改时将其绑定到新地址。有没有更好的实现方式?
我探索了 SO_BINDTODEVICE,但这需要 root 权限。
【问题讨论】:
-
在你的代码中启动socket之前你能得到eth0的ip吗?
-
这个问题中最受好评的答案显示了如何使用 C:stackoverflow.com/questions/579783/… 中的 AF_NETLINK 套接字在 Linux 上监视地址更改
标签: python sockets networking