C# 如何获取本机的局域网IP?

解决方案 »

  1.   

            /// <summary>
            /// 获取当前网卡IP地址
            /// </summary>
            /// <returns></returns>
            public static string GetNetCardIP()
            {
                try
                {
                    string stringIP = "";
                    ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection MOC = MC.GetInstances();
                    foreach (ManagementObject MO in MOC)
                    {
                        if ((bool)MO["IPEnabled"] == true)
                        {
                            string[] IPAddresses = (string[])MO["IPAddress"];
                            if (IPAddresses.Length > 0)
                            {
                                stringIP = IPAddresses[0].ToString();
                            }
                        }
                    }
                    return stringIP;
                }
                catch
                {
                    return "";
                }
            }
      

  2.   

    using System.Management; //需要在解决方案中引用System.Management.DLL文件
      

  3.   

    class Program    {        static void Main(string[] args)        {            Console.WriteLine(GetLocalHostIPAddress());            Console.ReadLine();        }        static string GetLocalHostIPAddress()        {            IPAddress[] ipLocal;//定义一个IPAddress类型的数组,用来存储本地IP            byte[] bArrIPAddr;//定义一个byte类型的数组,用来把存储字节型IP地址形式            int intI;            string strIPAddr = "";            ipLocal = Dns.GetHostAddresses(Dns.GetHostName());//通过本机名获取本机IP地址            if (ipLocal.Length == 0)            {                return strIPAddr;            }            bArrIPAddr = ipLocal[0].GetAddressBytes();            /*             * byte[]IPAddress.GetAddressBytes()             * Provides a copy of the System.Net.IPAddress as an array of bytes.            */            intI = 0;            while (intI < bArrIPAddr.Length)            {                if (intI == 0)                {                    strIPAddr = bArrIPAddr[intI].ToString();                }                else                {                    strIPAddr += "." + bArrIPAddr[intI].ToString();                }                intI += 1;            }            return strIPAddr;        }    }