猿问

如何获取运行C#应用程序的服务器的IP地址?

如何获取运行C#应用程序的服务器的IP地址?

我正在运行一个服务器,我想显示我自己的IP地址。

获取计算机自己(如果可能的话,外部)IP地址的语法是什么?

有人写了以下代码。

IPHostEntry host;string localIP = "?";host = Dns.GetHostEntry(Dns.GetHostName());foreach (IPAddress ip in host.AddressList){
    if (ip.AddressFamily.ToString() == "InterNetwork")
    {
        localIP = ip.ToString();
    }}return localIP;

但是,我通常不信任作者,也不理解这段代码。是否有更好的方法来做到这一点?


倚天杖
浏览 1141回答 3
3回答

LEATH

不,这是最好的方法。像机器一样能有几个IP地址,您需要迭代它们的集合,以找到合适的IP地址。编辑:我唯一会改变是为了改变这种情况:if (ip.AddressFamily.ToString() == "InterNetwork")对此:if (ip.AddressFamily == AddressFamily.InterNetwork)没有必要ToString用于比较的枚举。

MMMHUHU

更清洁和一个整体的解决方案:d//This returns the first IP4 address or nullreturn Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
随时随地看视频慕课网APP
我要回答