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


Posted in PHP onAugust 18, 2020

本文实例为大家分享了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=js&ip=".$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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
初识Laravel
Oct 30 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PDO::lastInsertId讲解
Jan 29 PHP
php文件包含的几种方式总结
Sep 19 PHP
PHP 8新特性简介
Aug 18 #PHP
PHP大文件及断点续传下载实现代码
Aug 18 #PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 #PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 #PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 #PHP
PHP unset函数原理及使用方法解析
Aug 14 #PHP
PHP常量及变量区别原理详解
Aug 14 #PHP
You might like
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
javascript self对象使用详解
2016/10/18 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python的中异常处理机制
2018/08/30 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
大学生村官工作感言
2014/01/10 职场文书
十一酒店活动方案
2014/02/20 职场文书
行政管理毕业生自荐信
2014/02/24 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
环保建议书600字
2014/05/14 职场文书
课外活动总结
2015/02/04 职场文书
班级管理经验交流材料
2015/11/02 职场文书