使用VB.net获取本地IPv4计算机

Jon*_*an. 6 vb.net ipv4

我正在尝试获取本地PC的IP地址,以及我的其他PC中的一个,它获得了v4地址,但是在这一个代码:

Dns.GetHostEntry(Dns.GetHostName).AddressList(0).ToString()
Run Code Online (Sandbox Code Playgroud)

返回我猜的IPv6地址:

fe80::9c09:e2e:4736:4c62%11
Run Code Online (Sandbox Code Playgroud)

我如何获得IPv4地址?

Ric*_*dOD 9

免责声明 - 我没有安装IPv6,可能有更好的方法,但以下内容返回:

Dns.GetHostEntry(Dns.GetHostName()).AddressList
    .Where(a => !a.IsIPv6LinkLocal && !a.IsIPv6Multicast && !a.IsIPv6SiteLocal)
    .First()
    .ToString();
Run Code Online (Sandbox Code Playgroud)

编辑 - 没注意到你在VB中问,所以我尝试将其翻译成:

Dim s As String = Dns.GetHostEntry(Dns.GetHostName()).AddressList _
    .Where(Function(a As IPAddress) Not a.IsIPv6LinkLocal AndAlso Not a.IsIPv6Multicast AndAlso Not a.IsIPv6SiteLocal) _
    .First() _
    .ToString()
Run Code Online (Sandbox Code Playgroud)

这可能会爆炸,所以不要将其视为生产代码.