增强对知识的记忆最笨得方法也是最好的办法就是做笔记,从今天开始记录我的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”
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn