2017-07-20 79 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