【问题标题】:discover if ip address is DHCP or static发现 IP 地址是 DHCP 还是静态的
【发布时间】:2011-06-23 12:35:46
【问题描述】:

我试图在 c 编程 (LINUX) 中获得什么样的 ip 我有 DHCP 或静态的。 有人知道怎么做吗? 我使用 struct ifaddrs 提取我的 ip;很高兴知道该结构是否可以提供信息。 提前感谢:)

【问题讨论】:

  • 什么平台、操作系统等?
  • 您希望如何处理这些信息?请记住,可能存在未分配给 DHCP 的非静态 IP 地址(例如分配给 RARP 或 BOOTP 的那些);和通过 DHCP 分配的静态地址。
  • 我不熟悉 RARP 和 BOOTP,但我认为这无关紧要。我需要从网络配置中的设置菜单中提取已选择的数据,而 eth0 只有 DHCP 或 STATIC 两种选择。我需要此信息仅用于显示。我已经为显示 LAN ip 地址等数据的设备构建和 lcd 模块。
  • @azulay7:那么您需要读取网络配置实用程序生成的配置文件。这将根据使用的实用程序而有所不同——不同的 Linux 发行版使用不同的网络配置文件。
  • 是的,这就是我提到的……我在 /etc/sysconfig/networking/devices/ifcfg-eth0 下找到了它,案例已关闭! :)

标签: c linux network-programming ip static-ip-address


【解决方案1】:

您不能仅从 IP 地址静态推断出该属性。

您可以猜测,通过确定 IP 地址是否属于“不可路由”系列(10.xyz 或 192.168.xy),但该地址也可以是手动分配。

确定系统是否有来自 DHCP 服务器的当前租用(非常)依赖于平台,并且需要 IP 地址本身中没有的信息。

【讨论】:

  • 我不是故意从ip中推断出来的。如果有的话,我想用另一个函数来发现它..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2010-10-10
  • 2014-02-19
  • 1970-01-01
  • 2020-04-26
相关资源
最近更新 更多