首页 > 解决方案 > 如何获取本地 IP 地址?

问题描述

这是我的代码获取 IP 地址:

    Dim ip
    Dim strHostName = System.Net.Dns.GetHostName()   
    Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(strHostName)
    For Each ipheal As System.Net.IPAddress In iphe.AddressList
        If ipheal.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then
            ip = ipheal
            Exit For
        End If
    Next

如果我的电脑通过 VPN 连接到网络。它返回网络 VPN 的 ip。

我只想获取除网络 VPN 之外的本地 IP。

标签: vb.net

解决方案


您可以列出列表中的所有 IP 地址并根据该列表做出决定。因此,不要在 FOR 循环中退出,而是处理所有 IP 地址。这是你能做的最好的。请参阅下面的片段。

Imports System.Net.Sockets

Module Module1

    Sub Main()


        Dim iphe As Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName())
        Dim ip = iphe.AddressList.Where(Function(n) n.AddressFamily = AddressFamily.InterNetwork)
        For Each i  In ip
            Console.WriteLine(i)    
        Next

        Console.ReadLine()
    End Sub

End Module

推荐阅读