<?php
/**
* Created by PhpStorm.
* User: frank
* Date: 2019/1/3
* Time: 14:01
*/
//获取客户端ip
function ip_ban()
{
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','192.168.1.*','localhost','127.0.0.*');
//允许访问的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;
return 1;
}
}
}
//end foreach
if (!$bl) {
$return = array(
'status' => 2,
'msg' => '该IP无权限访问',
'data' => $ip
);
// echo json_encode($return);
return 0;
// exit();
}
}
}
if(ip_ban()){
}
else{
$return = array(
'status' => 404,
'msg' => '非法访问,已记录档案'
);
echo json_encode($return);
网友评论