开发者

How would you compare two IP addresses to see which one is greater?

开发者 https://www.devze.com 2023-01-15 00:49 出处:网络
For example, following are two sets of IP addresses, now, how would you identify the greater IP for each set?

For example, following are two sets of IP addresses, now, how would you identify the greater IP for each set?

SET A:

10.192.3.177 and 10.192.2.204

SET B:

10.192.3.205 and 10.192.2.204开发者_开发百科

Thanks!!


If you convert them to a 32-bit integer, the greater one will be the greater integer. In other words:

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)

I'm having a hard time imagining a use case where it would matter but that's the approach I would take if I had to check in a program.


You should probably clarify what you mean by "greater".

But the numerical (uint32) value of each IP address can be calculated with:

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

where a, b, c, and d are the base 10 values in an IPv4 formatted: a.b.c.d


If you're after a way to sort a list of IP's you can also store the IP in a string with each octet prepended by 0 to 3 digits. Then a text sort works fine.

Example:

010.192.002.204
010.192.003.177 
0

精彩评论

暂无评论...
验证码 换一张
取 消