设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2381|回复: 2
收起左侧

[PHP/ASP/JSP] PHP判断IP地址是外网(公网/广域网)IP还是(局域网/保留/回送/IANA/广播)IP地址

[复制链接]
发表于 2019-3-22 17:13:42 | 显示全部楼层 |阅读模式
本帖最后由 QAQ 于 2019-3-22 17:15 编辑


  1. <?php
  2. /*
  3. 判断IP地址是外网(公网)IP还是内网IP
  4. 局域网、保留私有地址、本地回路、IANA、广播IP返回0,外网IP返回1
  5. 勿用32位PHP否则计算溢出会出错
  6. */
  7. function is_wan_ip($ip){
  8.         $l = ip2long($ip);
  9.         $a = $l & 0xFF000000;
  10.         $b = $l & 0xFFFF0000;
  11.         if($a == 0) return 0;                                        //0.0.0.0        ~0.255.255.255
  12.         if($a == 0x0A000000) return 0;                                //10.0.0.0        ~10.255.255.255

  13.         if($a == 0x7F000000) return 0;                                //127.0.0.1        ~127.255.255.255

  14.         if($b == 0xA9FE0000) return 0;                                //169.254.0.0~        169.254.255.255

  15.         if($l >= 0xAC100000 && $l <= 0xAC20FFFF) return 0;        //172.16.0.0        ~172.31.255.255
  16.         if($b == 0xC0A80000) return 0;                                //192.168.0.0        ~192.168.255.255

  17.         if($l >= 0xE0000000) return 0;                                //224.0.0.0        ~255.255.255.255

  18.         return 1;
  19. }




  20. echo is_wan_ip("0.1.2.3")."<br>";
  21. echo is_wan_ip("10.123.123.123")."<br>";
  22. echo is_wan_ip("172.16.32.18")."<br>";
  23. echo is_wan_ip("172.30.30.30")."<br>";
  24. echo is_wan_ip("172.32.0.0")."<br>";
  25. echo is_wan_ip("169.254.0.0")."<br>";

  26. echo is_wan_ip("127.123.123.123")."<br>";
  27. echo is_wan_ip("123.123.123.123")."<br>";
  28. echo is_wan_ip("1.1.1.1")."<br>";
  29. echo is_wan_ip("230.0.0.255")."<br>";


复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-16 15:01 , Processed in 0.446025 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表