php怎么设置后台某IP段可以登陆,获取本机外网美
分类:计算机网络

把下面代码放到你的网站后台登录入口调用,然后再把m=admin&c=index&a=login改成你的地址就可以了。

方法二:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址

$allow=preg_match("/^(".$ipregexp.")$/", $adminip);

/**
 * 获得用户的真实IP地址
 *
 * @return  string
 */
function real_ip(){
    static $realip = NULL;
 
    if ($realip !== NULL){
        return $realip;
    }
 
    if (isset($_SERVER)){
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
            foreach ($arr AS $ip){
                $ip = trim($ip);
 
                if ($ip != 'unknown'){
                    $realip = $ip;
 
                    break;
                }
            }
        }
        elseif (isset($_SERVER['HTTP_CLIENT_IP'])){
            $realip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else{
            if (isset($_SERVER['REMOTE_ADDR'])){
                $realip = $_SERVER['REMOTE_ADDR'];
            }
            else{
                $realip = '0.0.0.0';
            }
        }
    }
    else{
        if (getenv('HTTP_X_FORWARDED_FOR')){
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif (getenv('HTTP_CLIENT_IP')){
            $realip = getenv('HTTP_CLIENT_IP');
        }
        else{
            $realip = getenv('REMOTE_ADDR');
        }
    }
 
    preg_match("/[d.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
 
    return $realip;
}

 代码如下

复制代码 代码如下:

if($_SERVER['HTTP_CDN_SRC_IP']){

 代码如下

 

您可能感兴趣的文章:

  • php REMOTE_ADDR之获取访客IP的代码
  • php 获取客户端的真实ip
  • php gethostbyname获取域名ip地址函数详解
  • php下获取客户端ip地址的函数
  • PHP 获取客户端真实IP地址多种方法小结
  • php中获取远程客户端的真实ip地址的方法
  • php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
  • php获取用户IPv4或IPv6地址的代码
  • php 获取本地IP代码
  • PHP根据IP地址获取所在城市具体实现
  • ThinkPHP使用UTFWry地址库进行IP定位实例
  • php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
  • php中获取主机名、协议及IP地址的方法
  • thinkphp如何获取客户端IP

if($allow!=1) {

public function login() {
        //设定IP段登录
        if(getenv("HTTP_CLIENT_IP")) {
            $onlineip = getenv('HTTP_CLIENT_IP');
                 }
                 elseif(getenv('HTTP_X_FORWARDED_FOR')){
                         $onlineip = getenv('HTTP_X_FORWARDED_FOR');
                 }
                 elseif(getenv('REMOTE_ADDR')){
                         $onlineip = getenv('REMOTE_ADDR');
                 }
                 else{
                         $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
                 }
//                 echo $onlineip;
                 $adminip = $onlineip;
                 $arrayip = array('117.121.48.*','127.0.0.*');//ip段
                 $ipregexp = implode('|', str_replace( array('*','.'), array('d+','.') ,$arrayip) );
                 $allow = preg_match("/^(".$ipregexp.")$/", $adminip);
       
                 if ($allow != 1) {
                         showmessage(L('你的ip地址不在被允许的范围内!'),'?m=admin&c=index&a=login',6000);
                 }

function get_onlineip() {
$onlineip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}

}

function get_onlineip() {
$ch = curl_init('');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/[(.*)]/', $a, $ip);
return $ip[1];
}

elseif($_SERVER['REMOTE_ADDR']){

经过我的研究有两种方法来获取用户的真实外网IP。

$arrayip= array('192.168.0.*','127.0.0.*','192.168.50.*');//ip段,只有这几个ip段的可以访问

但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。

$exitip= array('*.*.*.*','*.*.*.*');//出口ip,这个是具体的ip,*所占得位置需要填上ip

大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP,

else{

方法一:curl

$adminip=$onlineip;

复制代码 代码如下:

}

elseif($_SERVER['HTTP_X_FORWARDED_FOR']){

$onlineip=$_SERVER['REMOTE_ADDR']美高梅网址,;

$onlineip=$_SERVER['REMOTE_ADDR'];

}

}

$onlineip=$_SERVER['HTTP_CDN_SRC_IP'];

if(!in_array($adminip,$exitip))die('呔,你个坏人!');

}

$ipregexp=implode('|',str_replace(array('*','.'),array('d+','.') ,$arrayip) );

elseif($_SERVER['HTTP_CLIENT_IP']){

$onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];

//echo $onlineip;

$onlineip=$_SERVER['HTTP_CLIENT_IP'];

}

在phpcms中可以限制某些ip段或者某些具体的ip登录,具体的方法如下:

本文由美高梅网址发布于计算机网络,转载请注明出处:php怎么设置后台某IP段可以登陆,获取本机外网美

上一篇:php中timezone时区设置方法,php设置时区方法介绍 下一篇:没有了
猜你喜欢
热门排行
精彩图文