知道接口是静态配置还是使用Debian中的C代码中的dhcp

时间:2015-09-10 19:38:54

标签: c linux kernel

我试图从linux中的C代码中弄清楚接口是否配置为静态或使用dhcp。

我知道我可以打开并解析/ etc / network / interfaces文件,但我更喜欢更清洁的东西,比如我用来获取IP地址和掩码的函数getifaddrs()。因为如果接口在/ etc / network / interfaces文件中配置为dhcp,但稍后用户将其从命令行更改为静态怎么办?我会得到一个错误的答案。

有没有办法向内核询问接口的static / dhcp当前状态?

1 个答案:

答案 0 :(得分:1)

DHCP IP地址获取通常由主机配置的分发脚本或网络管理器服务管理。在较低级别,他们可以使用 dhclient 守护程序...

Debian 中, dhclient 守护程序创建文件

/run/dhclient.${interface}.pid

因此,您可以测试 dhclient设置接口的时间。

在非完全托管的网络环境中,您还应该阅读该文件并测试进程ID是否仍然有效。