php语言

实现PHP实现限制IP访问

时间:2025-02-23 19:14:09 php语言 我要投稿
  • 相关推荐

实现PHP实现限制IP访问

  文章主要介绍了PHP实现限制IP访问的方法,涉及php针对客户端IP的获取、解析、遍历、判断等相关操作技巧,需要的朋友可以参考下。

  本文实例讲述了PHP实现限制IP访问的方法。分享给大家供大家参考,具体如下:

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  27

  28

  29

  30

  31

  32

  33

  34

  35

  36

  37

  38

  39

  40

  41

  42

  43

  44

  45

  46

  47

  48

  49

  //获取客户端ip

  if (getenv("HTTP_CLIENT_IP"))

  $ip = getenv("HTTP_CLIENT_IP");

  else if(getenv("HTTP_X_FORWARDED_FOR"))

  $ip = getenv("HTTP_X_FORWARDED_FOR");

  else if(getenv("REMOTE_ADDR"))

  $ip = getenv("REMOTE_ADDR");

  else $ip = "Unknow";

  $ALLOWED_IP=array('10.144.39.132');

  //允许访问的ip

  $check_ip_arr= explode('.',$ip);

  //ip参数拆分成数组

  if(!in_array($ip,$ALLOWED_IP)) {

  $bl=false;

  foreach ($ALLOWED_IP as $val){

  if(strpos($val,'*')!==false){

  //发现有*号替代符

  $arr=array();

  $arr=explode('.', $val);

  $bl=true;

  //用于记录循环检测中是否有匹配成功的

  for ($i=0;$i<4;$i++){

  if($arr[$i]!='*'){

  //不等于* 就要进来检测,如果为*符号替代符就不检查

  if($arr[$i]!=$check_ip_arr[$i]){

  $bl=false;

  break;

  //终止检查本个ip 继续检查下一个ip

  }

  }

  }

  //end for

  if($bl){

  //如果是true则终止匹配

  break;

  }

  }

  }

  //end foreach

  if(!$bl){

  $return=array(

  'status'=>2,

  'msg'=>'该IP无权限访问',

  'data'=>$ip

  );

  echo json_encode($return);

  exit();

  }

  }

【实现PHP实现限制IP访问】相关文章:

PHP根据IP地址获取所在城市具体实现07-16

php实现无限级分类实现代码07-03

php页面缓存实现方法07-20

PHP中多态如何实现09-04

PHP实现多线程的方法08-02

PHP列表页实现的方法05-24

PHP页面跳转实现技巧09-19

PHP滚动日志的代码实现11-15

PHP实现抓取HTTPS内容09-17