如何自动获得IP地址更改通知

mah*_*024 10 linux linux-kernel

在linux中有任何方法,如回调或信号,以便在IP地址发生任何变化时得到通知.我想用内核注册回调或从内核获取一个信号,这个信号是自动完成的,而我的代码在套接字上轮询.

提前致谢.

nin*_*alj 18

您通过netlink套接字从内核接收通知.

您需要创建一个NETLINK_ROUTE套接字并通过将bind()其订阅到RTMGRP_IPV4_IFADDR组来进行IP更改.然后,您将收到类型RTM_NEWADDRRTM_DELADDR路由属性为IFA_LOCAL或的netlink消息IFA_ADDRESS.