php中如何判断一个IP地址是否属于某个网络地址段

这个问题困扰我很久了。很多人的做法是使用正则文字验证开头文字是否匹配。但是这种方式有很大的局限性,只能判断类似192.168.1.9是否属于192.168.1.0/24这种一眼就能看出来的地址段,无法判断那些需要网络地址计算才能知道答案的情况。 例如,172.16.74.2172.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/

Share Comments
comments powered by Disqus