比较Ip值以确定是否在特定范围内

本文关键字:是否 范围内 Ip 比较 | 更新日期: 2023-09-27 18:25:30

在特定范围内有没有比较ip地址的方法。

IPAddress[] ips;
ips = Dns.GetHostAddresses("www.xyz.com");
Console.WriteLine("GetHostAddresses({0}) returns:", "www.xyz.com");
foreach (IPAddress ip in ips)
{
    Console.WriteLine("    {0}", ip);
}
Console.ReadLine();

ips变量存储ip值。我想在10.100.12.21和10.255.15.30之间进行比较。如何比较其他类型的ips?转换为ips值以加倍后比较ip范围。或者其他想法?

比较Ip值以确定是否在特定范围内

自己的实现,试试这个:

    int[] maxIP = new int[] { 10, 255, 15, 30 };
    int[] minIP = new int[] { 10, 100, 12, 21 };
    char[] sep = new char[] { '.' };
    var ip = "10.100.16.21";
    string[] splitted = ip.Split(sep);
    for (int i = 0; i < splitted.Length; i++)
    {
        if (int.Parse(splitted[i]) > maxIP[i])
        {
            Console.WriteLine("IP greather than max");
            break;
        }
        else if (int.Parse(splitted[i]) < minIP[i])
        {
            Console.WriteLine("IP less than min");
            break;
        }
    }

使用Equals:

static void Main(string[] args)
{
    IPAddress a, b;
    a = new IPAddress(new byte[] { 10, 100, 12, 21 });
    b = new IPAddress(new byte[] { 10, 100, 12, 21 });
    Console.WriteLine("Value is {0}", a.Equals(b));
    Console.ReadLine();
}