> php教程 > php手册 > 본문

增强记忆的好方法,做笔记---php获取用户ip地址及所在城市

WBOY
풀어 주다: 2016-06-13 10:44:21
원래의
1292명이 탐색했습니다.

增强对知识的记忆最笨得方法也是最好的办法就是做笔记,从今天开始记录我的php工作、学习笔记。
1、获取浏览者的ip地址及所在城市的代码
首先是获取浏览者的ip地址的函数
function getRealIp() { 
       if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {  //check ip from share internet 
         $ip=$_SERVER['HTTP_CLIENT_IP']; 
       } elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {  //to check ip is pass from proxy 
         $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
       } else { 
         $ip=$_SERVER['REMOTE_ADDR']; 
       } 
       return $ip; 
    }
获取ip地址后,访问www.ip138.com的提供的一个api取得所在城市
 
function ips($ip){ 
    $str=file_get_contents("http://www.ip138.com/ips.asp?ip={$ip}&action=2"); 
    preg_match("/

    (.*)/",$str,$m); 
        $pstr=str_replace("","",$m[1]); 
        $arr=explode("
  • ",$pstr); 
        array_shift($arr); 
        return $arr; 
    }
     2、通过腾讯提供的api获取ip及所在城市(注意:只能获取服务器的地址,方法获取浏览者的信息有些遗憾)。
    个人觉得这个函数非常好,可惜只呢获取服务器所在的信息。
     
    function get_ip_place(){   
    $ip=file_get_contents("http://fw.qq.com/ipaddress");   
    $ip=str_replace('"',' ',$ip);   
    $ip2=explode("(",$ip);   
    $a=substr($ip2[1],0,-2);   
    $b=explode(",",$a);   
    return $b;   
    }   
    $ip=get_ip_place();   
    print_r($ip);   
     
     基础知识补充:
    $_SERVER['HTTP_CLIENT_IP']:获取代理的ip(有可能存在,可伪造)
    $_SERVER['HTTP_X_FORWARDED_FOR']:用户是在哪个IP使用的代理(有可能存在,也可以伪造,什么的函数获取的真实ip地址就是用这个常用变量取得的)
    $_SERVER['REMOTE_NAME']:访问端(有可能是用户,有可能是代理的)IP

    作者“volley”

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿