主页 > 知识库 > php判断IP地址是否在多个IP段内

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

热门标签:电子地图标注怎么修改 公司外呼系统中心 梧州市机器人外呼系统怎么样 如何在世界地图标注 厦门400电话办理选易号网 地图标注符号样式有 临沂crm外呼系统平台 菏泽语音外呼系统运营商 天客通地图标注

本文实例为大家分享了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判断IP地址是否在多个IP段内》,本文关键词  php,判断,地址,是否,在,多个,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《php判断IP地址是否在多个IP段内》相关的同类信息!
  • 本页收集关于php判断IP地址是否在多个IP段内的相关信息资讯供网民参考!
  • 推荐文章