【发布时间】:2009-10-08 11:37:42
【问题描述】:
我正在开发运行 BusyBox 的嵌入式设备。
系统正在使用 ip 命令获取其地址。
我想从我的 C 程序中弄清楚设备是否
ip 静态或从 DHCP 服务器接收。我该怎么做?
【问题讨论】:
-
我认为您应该首先编辑您的问题,详细说明如何获取 IP 地址。我以为你运行的是 BusyBox 的 dhcp 客户端,但这似乎是错误的。
我正在开发运行 BusyBox 的嵌入式设备。
系统正在使用 ip 命令获取其地址。
我想从我的 C 程序中弄清楚设备是否
ip 静态或从 DHCP 服务器接收。我该怎么做?
【问题讨论】:
我不知道您的用户如何与您的嵌入式系统交互。但是在我们的(相同的组件)上,我们有 CLI,它在每个接口的 SHM 结构 (db) 中注册选择的 DHCP/STATIC 类型设置。
基本上,您需要跟踪接口的 IP 是如何设置的。
【讨论】:
dumpleases 命令应该显示当前的租约。我想如果你能确定你有一个 IP 地址,但没有租约,那么这个地址就是静态的。
【讨论】:
如果你控制环境,我建议设置一个环境变量,或者在设置 IP 地址时在可以统计的地方创建一个标志文件。
【讨论】:
查看this question 并检查 IFF_DYNAMIC 标志 - 当 DHCP 在接口上处于活动状态时可能会设置该标志。
【讨论】: