• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php判断IP地址是否在多个IP段内

    本文实例为大家分享了php判断IP地址是否在多个IP段内的具体代码,供大家参考,具体内容如下

    IP.class.php

    ?php
     
    class Ip {
      /**
       * 取IP
       * @return string
       */
      public static function get() {
        if ($_SERVER['HTTP_CLIENT_IP']  $_SERVER['HTTP_CLIENT_IP']!='unknown') {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
          } elseif ($_SERVER['HTTP_X_FORWARDED_FOR']  $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
          } else {
            $ip = $_SERVER['REMOTE_ADDR'];
          }
          return $ip;
      }
     
      /**
       * IP转成整形数值
       * @param string $ip IP
       * @return int
       */
      public static function ipToInt($ip) {
        $ips = explode('.',$ip);
        if (count($ips)==4) {
          $int = $ips[0]*256*256*256+$ips[1]*256*256+$ips[2]*256+$ips[3]; //根据IP,a,b,c类进行计算
        } else {
          //throw new Exception('ip is error');
          Tool::Alert('IP地址存在错误...'); //一个工具类,弹出提示信息
        }
        return $int;
      }
     
      /**
       * 判断IP是否在一个IP段内
       * @param string $startIp 开始IP
       * @param string $endIp 结束IP
       * @param string $ip IP
       * @return bool
       */
      public static function isIn($startIp, $endIp, $ip) {
        $start = Ip::ipToInt($startIp);
        $end = Ip::ipToInt($endIp);
        $ipInt = Ip::ipToInt($ip);
        $result = false;
        if ($ipInt>=$start  $ipInt=$end) {
          $result = true;
        }
        return $result;
      }
     
    }
     
    ?>

    IpRang.class.php

    ?php
     
    //将不同的IP段存储到数组中..
     
    $iprang=array(
      array('222.243.159.1','222.243.159.255'),
      array('10.1.1.1','10.1.1.255')
    );
    ?>

    test.php

    ?php
     
    require_once 'Tool.class.php'; //工具类
    require_once 'IP.class.php'; //IP类
    require_once 'IpRang.class.php'; //IP段范围
     
    $ip = IP::get(); //获取IP地址
    $tag='1';
    foreach($iprang as $key => $value){
     if(!IP::isIn($value[0], $value[1], $ip)){
      continue;
     }else{
      $tag.=$key;
     }
    }
    if(mb_strlen($tag,'utf-8')==1){
     echo "script src='/iplookup/iplookup.php?format=jsip=".$ip."' type='text/javascript'>/script>";//调用新浪IP接口
     echo "script type='text/javascript'>alert('很遗憾,您所用的设备网络不在某某范围内...\\n".$ip."\\n'+remote_ip_info.province+remote_ip_info.city+remote_ip_info.district); $(\"input[name='submit']\").attr(\"disabled\",true);/script>";
      //弹出提示框,显示IP地址、地址以及将提交按钮置为不可用状态
    }
     
    ?>

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP获取真实IP及IP模拟方法解析
    • php实现统计IP数及在线人数的示例代码
    • bt宝塔面板php7.3、php7.4不支持ZipArchive解决方法
    • 通过PHP实现获取访问用户IP
    • PHP Pipeline 实现中间件的示例代码
    • 原生javascript的ajax请求及后台PHP响应操作示例
    • php利用ZipArchive类操作文件的实例
    • PHP生成zip压缩包的常用方法示例
    • php解压缩zip和rar压缩包文件的方法
    • PHP基于ip2long实现IP转换整形
    上一篇:PHP 8新特性简介
    下一篇:php提高脚本性能的4个技巧
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php判断IP地址是否在多个IP段内 php,判断,地址,是否,在,多个,