📜  如何在c#中获取IP地址(1)

📅  最后修改于: 2023-12-03 15:38:31.260000             🧑  作者: Mango

如何在C#中获取IP地址

在C#中,我们可以使用System.Net命名空间下的IPAddress类来获取IP地址。IP地址可以是IPv4或IPv6。

获取本机IP地址

获取计算机上的本机IP地址,可以使用以下代码:

using System;
using System.Net;

namespace GetIPAddress
{
    class Program
    {
        static void Main(string[] args)
        {
            IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

            foreach (IPAddress addr in localIPs)
            {
                if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    Console.WriteLine("IPv4 Address: {0}", addr);
                }
                else if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
                {
                    Console.WriteLine("IPv6 Address: {0}", addr);
                }
            }
        }
    }
}

这段代码首先获取计算机名(也可以手动指定主机名)然后可以通过Dns.GetHostAddresses()方法返回一个IP地址数组,显然会有IPv4和IPv6两个IP地址。

获取远程IP地址

如果需要获取远程计算机的IP地址,可以使用以下代码:

using System;
using System.Net;

namespace GetRemoteIPAddress
{
    class Program
    {
        static void Main(string[] args)
        {
            IPHostEntry host = Dns.GetHostEntry("www.google.com");

            foreach (IPAddress addr in host.AddressList)
            {
                if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    Console.WriteLine("IPv4 Address: {0}", addr);
                }
                else if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
                {
                    Console.WriteLine("IPv6 Address: {0}", addr);
                }
            }
        }
    }
}

在这里,我们使用Dns.GetHostEntry()方法获取指定主机名的IP地址。当然,也可以通过IP地址直接访问该主机,并获取远程主机的IP地址。(不推荐)

以上就是获取IP地址的示例代码,通过在其中嵌入其他功能就可以实现一些有用的程序。