这个问题困扰我很久了。很多人的做法是使用正则文字验证开头文字是否匹配。但是这种方式有很大的局限性,只能判断类似192.168.1.9是否属于192.168.1.0/24这种一眼就能看出来的地址段,无法判断那些需要网络地址计算才能知道答案的情况。
例如,172.16.74.2
和172.16.53.2
这两个地址,哪个属于172.16.0.1/18
地址段?
终于找到网上一个大拿写的判断逻辑,非常好用。可以直接拿来使用该函数。永久收藏了!
ip_in_range.php – Function to determine if an IP is located in a specific range as specified via several alternative formats.
这位大拿其实写了好几个实用小程序,全是短平快的。 http://www.pgregg.com/projects/