你如何比较两个IP地址,看看哪个更大?

时间:2010-09-08 05:58:45

标签: ip-address ip

例如,以下是两组IP地址,现在,您如何识别每组的更高IP?

SET A:

10.192.3.177和10.192.2.204

SET B:

10.192.3.205和10.192.2.204

谢谢!

3 个答案:

答案 0 :(得分:4)

如果将它们转换为32位整数,则较大的整数将是更大的整数。换句话说:

10.192.3.177 -> 0x0ac003b1 (180,356,017) (bigger)
10.192.2.204 -> 0x0ac002cc (180,355,788)

10.192.3.205 -> 0x0ac003cd (180,356,045) (bigger)
10.192.2.204 -> 0x0ac002cc (180,355,788)

我很难想象一个重要的用例,但如果我必须检查一个程序,那就是我会采取的方法。

答案 1 :(得分:1)

你应该澄清“更大”的意思。

但是每个IP地址的数字(uint32)值可以用以下公式计算:

d + 256 * c + 65536 * b + 16777216 * a

其中a,b,c和d是IPv4格式的基数10值: A.B.C.D

答案 2 :(得分:1)

如果您正在对IP列表进行排序,您还可以将IP存储在一个字符串中,每个八位字节前置0到3位数字。然后文本排序工作正常。

示例:

010.192.002.204
010.192.003.177