我正在一个依赖于网络连接的 Linux 机器(DHCP 客户端)上编写 C++ 程序。我需要务实地验证我的系统是否有 IP 地址。我知道这是一个普遍且开放式的问题,因此任何快速而肮脏的解决方案都对我有用,但理想情况下,我想检查/读取系统文件以确保 DHCP 客户端已从 DHCP 服务器接收到 IP 地址。
提前致谢。
我正在一个依赖于网络连接的 Linux 机器(DHCP 客户端)上编写 C++ 程序。我需要务实地验证我的系统是否有 IP 地址。我知道这是一个普遍且开放式的问题,因此任何快速而肮脏的解决方案都对我有用,但理想情况下,我想检查/读取系统文件以确保 DHCP 客户端已从 DHCP 服务器接收到 IP 地址。
提前致谢。
只需尝试任何需要 IP 地址的操作,如果有的话应该可以工作。想到了 DNS 查找。
也许看看 say 的来源ifconfig
,因为如果分配了一个,它会得到 IP 地址。快速 strace 表明它可能是一个 ioctl,例如
ioctl(4, SIOCGIFADDR, {ifr_name="eth0", ifr_addr={AF_INET, inet_addr("<my ip>")}})
我的 IP 地址的 /proc/net 的 grep 表明,如果您知道如何解析/proc/net/fib_trie
,则可以从那里获取它。