程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 增強記憶的好方法,做筆記---php獲取用戶ip地址及所在城市

增強記憶的好方法,做筆記---php獲取用戶ip地址及所在城市

編輯:關於PHP編程

增強對知識的記憶最笨得方法也是最好的辦法就是做筆記,從今天開始記錄我的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("/<ul class=\"ul1\">(.*)<\/ul>/",$str,$m); 
    $pstr=str_replace("</li>","",$m[1]); 
    $arr=explode("<li>",$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”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved