【问题标题】:DHCP address 255.255.255.255DHCP 地址 255.255.255.255
【发布时间】:2011-11-08 11:31:49
【问题描述】:

我正在使用以下代码从我的一个网络接口获取 DHCP 服务器地址:

System.Net.NetworkInformation.NetworkInterface networkInterface;

// ... get one of the network interfaces

var properties = networkInterface.GetIPProperties();
var addresses = properties.DhcpServerAddresses;

我的网络接口设置为一个固定地址(不是由 DHCP 分配的),我从该代码中获得了一个地址,即 255.255.255.255。谁能告诉我为什么?以及如何检查网络接口是否使用 DHCP 或固定地址。

【问题讨论】:

    标签: c# networking dhcp


    【解决方案1】:

    地址255.255.255.255是一个广播地址,被DHCP协议用来广播可用性数据包。当您不使用 DHCP 时,这是分配为 DHCP 服务器的地址,因为它允许网络自动发现网络上的任何 DHCP 服务器(通常是路由器)。

    您可以使用它来检查 DHCP:

    bool isDhcp = networkInterface.GetIPProperties()
                                  .GetIPv4Properties()
                                  .IsDhcpEnabled;
    

    【讨论】:

    • 谢谢,这正是我所需要的。我会尽快将您的回复标记为答案。
    【解决方案2】:

    它不是一个“真实的”IP 地址,因为它不能分配给主机。它只是意味着“到处广播”。

    我认为可以安全地假设当您找到 255.255.255.255 作为 DHCP 服务器地址时,您查询的适配器具有固定 IP 地址,或 APIPA(当适配器设置为 DHCP 客户端时会发生这种情况,但是在预设的时间段内没有 DHCP 服务器响应)。

    但是@Polynomial 提到的IsDhcpEnabled 属性更安全。

    【讨论】:

    • 感谢您的回复,我一直想知道 169.x.x.x 地址背后是否有任何原因:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多