vb.net - 如何获取本地 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。
解决方案
您可以列出列表中的所有 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
推荐阅读
- c - 为什么这不会在 C 中生成越界访问?
- mongodb - 如何加速许多文档的大型数组的聚合
- c++ - string::replace 是否替换无效的迭代器和引用?
- heroku - 用户不断在 heroku node.js 应用程序上注销
- .net - 使用 MSDeploy... 你如何发布 Web.QA.config => Web.config
- twitter-bootstrap - Bootstrap 将两行宽列折叠成一行
- matplotlib - 将字体更改为 avant Matplotlib
- python - Geany IDE:“没有名为 matplotlib 的模块”
- python - 如何创建具有动态步数的有限状态机
- python - 在训练和预测过程中,我应该如何处理神经网络中的可变样本长度?