2011-11-08 92 views
0

我使用下面的代碼從我的一個網絡接口獲取DHCP服務器地址:DHCP地址255.255.255.255

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或固定地址。

回答

2

地址255.255.255.255是一個廣播地址,DHCP協議使用它來廣播可用性數據包。當您不使用DHCP時,這是指定爲DHCP服務器的地址,因爲它將允許網絡自動發現網絡上的任何DHCP服務器(通常是路由器)。

你可以用這個來檢查DHCP:

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

謝謝,這正是我需要的。我會將答覆標記爲答案。 – ppiotrowicz

2

它不是一個「真正的」IP地址,因爲它不能分配給主機。它只是意味着「無處不在」。

我認爲可以安全地假設當您發現255.255.255.255作爲DHCP服務器地址時,您查詢的適配器有一個固定的IP地址或APIPA(當適配器設置爲DHCP客戶端時發生,但沒有DHCP服務器已經響應了預設時間段)。

但@Polynomial提到的IsDhcpEnabled屬性更安全依賴。

+0

感謝您的答覆,我總是在想,如果有背後169.x.x.x地址的任何理由:)。 – ppiotrowicz

相關問題