• 技术文章 >后端开发 >php教程

    php如何计算IP地址掩码

    *文*文2018-01-02 11:59:42原创1735

    本文主要介绍了php进行ip地址掩码运算处理的方法,涉及php字符串及网络操作相关技巧,需要的朋友可以参考下。希望对大家有所帮助。

    具体如下:

    ip解析:

    function ip_parse($ip_str) {
     $mark_len = 32;
     if (strpos($ip_str, "/") > 0) {
      list($ip_str, $mark_len) = explode("/", $ip_str);
     }
     $ip = ip2long($ip_str);
     $mark = 0xFFFFFFFF << (32 - $mark_len) & 0xFFFFFFFF;
     $ip_start = $ip & $mark;
     $ip_end = $ip | (~$mark) & 0xFFFFFFFF;
     return array($ip, $mark, $ip_start, $ip_end);
    }
    //演示:
    list($ip, $mark, $ip_start, $ip_end) = ip_parse("192.168.1.12/24");
    echo "IP地址 : ", long2ip($ip), "\n";
    echo "子网掩码: ", long2ip($mark), "\n";
    echo "IP段开始: ", long2ip($ip_start), "\n";
    echo "IP段结束: ", long2ip($ip_end), "\n";

    结果:

    IP地址 : 192.168.1.12
    子网掩码: 255.255.255.0
    IP段开始: 192.168.1.0
    IP段结束: 192.168.1.255

    ip是否在ip分段中:

    function ip_in($ip, $ip_str) {
     $mark_len = 32;
     if (strpos($ip_str, "/") > 0) {
      list($ip_str, $mark_len) = explode("/", $ip_str);
     }
     $right_len = 32 - $mark_len;
     return ip2long($ip) >> $right_len == ip2long($ip_str) >> $right_len;
    }
    //演示:
    var_dump(ip_in("192.168.1.1", "192.168.1.0/24"));

    相关推荐:

    php 计算两个时间戳相隔的时间实例

    PHP 计算页面执行时间

    php 计算两点地理坐标的距离

    以上就是php如何计算IP地址掩码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 地址 计算
    上一篇:PHP中的file_put_contents函数详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP网站常见一些安全漏洞及防御方法• PHP魔术方法的简单调用实例_PHP教程• 你是优秀的PHP程序员吗?_PHP教程• 实战PHP5+Apache2.2+MySQL5.1配置经历_PHP教程• PHP的内码转换函数 mb_convert_encoding()_PHP教程
    1/1

    PHP中文网