获取当前正在使用的IP地址

3

我正在寻找一种解决方案,可以让我获取我的电脑/笔记本当前正在使用的IP地址。

我的意思是,我可能在局域网中,然后切换到无线局域网。 IP地址会更改,我需要保持最新。

这就是为什么我不满意在互联网上找到的方法,例如IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

对于此问题,最好的方法是什么?


获取本地IP地址的方法不同。我正在询问当前正在使用的IP地址。 - dev hedgehog
尝试这个: System.Web.HttpContext.Current.Request.UserHostAddress - Fabjan
1
据我所知,目前没有可靠的方法可以在局域网内部确定这一点。请参阅https://en.wikipedia.org/wiki/STUN。 - C.Evenhuis
你为什么“需要”这些信息,以及你将如何使用它?当你的程序获取这些信息时,它可能已经过时了(因为连接/断开网络是程序无法控制的)。 - Damien_The_Unbeliever
请同时查看以下网站:https://dev59.com/nmw15IYBdhLWcg3wIoVM。 - Anonymous Platypus
1个回答

2
您可以通过以下方式查看机器的活动接口:
var interfaces = NetworkInterface.GetAllNetworkInterfaces().Where(a => a.OperationalStatus == OperationalStatus.Up);

var addresses = interfaces.First().GetIPProperties().UnicastAddresses.Where(a => a.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);

addresses中任何项的Address属性都包含IP地址。从那里,您可以监视适配器并决定何时需要切换以及绑定到哪个地址。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接