2017-07-20 80 views
0

我有下面的代碼從Checking static or dynamic IP address in C# .NET?如何檢測vb.net中的靜態或動態IP地址?

Imports System.Net.NetworkInformation 

Private niAdpaters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces() 

Private Function GetDhcp(iSelectedAdpater As Int32) As [Boolean] 
    If niAdpaters(iSelectedAdpater).GetIPProperties().GetIPv4Properties() IsNot Nothing Then 
     Return niAdpaters(iSelectedAdpater).GetIPProperties().GetIPv4Properties().IsDhcpEnabled 
    Else 
     Return False 
    End If 
End Function 

但我不知道如何使用上面的代碼。

+1

如果你同時擁有什麼?您可以有多個網絡連接,但可能配置不一樣。例如,假設你有一個靜態分配的網絡端口和一個獲取動態地址的wifi卡。我的筆記本電腦實際上是現在設置的,因爲我需要在局域網端口上的靜態地址來管理我的一些服務器和交換機設備。你想如何處理這種情況? –

+0

這取決於。您可能有多個獨立的電纜連接。例如,我有一個有四個網絡端口的服務器。主接口是靜態IP,但其他接口是爲不同的vlan設置的,並使用動態地址。 –

+1

C#代碼運行的計算機上網絡接口的IP與ISP提供的IP不同。有一個在之間的NAT層通過調制解調器/路由器分割你的家變成一個完全獨立的網絡和專用網絡提供的,這意味着你在找什麼,在不會告訴你所有你想知道的。在該網絡內部,無論您使用C#代碼做什麼,即使您的ISP正確提供靜態地址,也可能會顯示「動態」。 –

回答

0

你的方法GetDhcp預計選定適配器作爲它的參數,所以你的東東來稱呼它:

If GetDhcp(1) = True Then 
    ... 

或者乾脆

If GetDhcp(1) Then 
    ... 

其中1代表適配器的索引所有NetworkInterfaces列表。

你將有權檢查列表中找到所需的NetworkInterface檢查喬爾指出。

可以讓你的系統,如無線網絡,LAN甚至是虛擬適配器(主機操作系統上運行的虛擬機)上的適配器任意數量。

+0

檢查[NetworkInterface.GetAllNetworkInterfaces](https://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getallnetworkinterfaces(V = vs.110)的.aspx)和[NetworkInterface的屬性](HTTPS ://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface_properties(v = vs.110)的.aspx) - 這是有關您的操作系統的設置,而不是你的ISP - 除非你正在運行您的代碼在具有直接WAN連接的計算機上。 – Filburt