欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-04-03 15:27:09
...
增强对知识的记忆最笨得方法也是最好的办法就是做笔记,从今天开始记录我的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”