【问题标题】:Get local system ip address using c#使用c#获取本地系统IP地址
【发布时间】:2012-01-03 08:04:35
【问题描述】:

我正在寻找在系统上安装虚拟机时识别系统是否连接到网络或获取本地 IP 地址的方法。 这是返回本地IP地址的代码:

 public static string LocalIPAddress()
        {
            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;
        }

但是当系统未连接到网络时,它会返回另一个 VM ip 地址。
我也找到了这个方法 System.Net.NetworkInformation.NetworkInterface.isconnected 方法可用,但即使拔下网线,它也会返回 true。
有什么方法可以查出系统是否连接?

【问题讨论】:

标签: c#


【解决方案1】:

以下行将获取您的本地 IP 地址

string ipadress = Dns.GetHostEntry(Dns.GetHostName())
.AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork)
.ToString();

【讨论】:

    【解决方案2】:

    试试这个:

    using System.Net;
    
    private string GetIP()
    {
        string strHostName = System.Net.Dns.GetHostName();
        IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
        IPAddress[] addr = ipEntry.AddressList;
        return addr[addr.Length-1].ToString();
    }
    

    【讨论】:

    • 此代码有效,但我不得不将 addr[addr.Length-1] 更改为 addr[0]。它可能会更好地匹配AddressFamily.InterNetwork 的第一个地址,就像下面的其他答案之一一样。
    【解决方案3】:
    【解决方案4】:
    Try This:
    
          using System;
          using System.Net;
          namespace GetLocalIP
           {
            class Program
             {
              static void Main(string[] args)
                {
                 string host = Dns.GetHostName();
                 string AddressIP6 = string.Empty;
                 IPAddress[] IPAdd = Dns.GetHostAddresses(host);
                 foreach (IPAddress ip6 in IPAdd){
                 AddressIP6 = ip6.ToString();
                }
              Console.WriteLine("Local system IP Address : " + AddressIP6);
            Console.ReadKey();
          }
        }
     }
    

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多