使用c#获取本地系统ip地址

本文关键字:系统 ip 地址 获取 使用 | 更新日期: 2023-09-27 18:19:13

我正在寻找识别系统是否连接到网络或在系统上安装虚拟机时获得本地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;
        }

但是当系统没有连接到网络时,它返回另一个虚拟机的ip地址。
我也发现了这个方法System.Net.NetworkInformation.NetworkInterface.isconnected方法可用,但即使拔掉网线,它也返回true。
有办法知道系统是否连接吗?

使用c#获取本地系统ip地址

下面一行将获取您的本地IP地址

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

试试这个:

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();
}

http://www.csharp-examples.net/local-ip/

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();
      }
    }
 }