在php中擷取IP地址的方法有很多種,下面我介紹利用linux命令擷取IP地址然後轉換成數組輸出,下面也介紹了一些常用關於php ip地址處理執行個體。
PHP擷取伺服器IP地址
用PHP執行ifconfig獲得Linux伺服器IP並輸出為數組,下面是代碼:
| 代碼如下 |
複製代碼 |
function getServerIp(){ //用ifconfig讀取伺服器IP並輸出為數組 $ss = exec('/sbin/ifconfig | sed -n 's/^ *.*addr:\([0-9.]\{7,\}\) .*$/\1/p'',$arr); return $arr; } $ips=getServerIp(); foreach($ips as $k=>$v){//過濾IP if(substr($v,0,3)=='127' || substr($v,0,3)=='10.' || substr($v,0,7)=='192.168' || substr($v,0,6)=='172.16'){ unset($ips[$k]); } } shuffle($ips);//重新排序 print_r($ips); ?> |
一些php擷取ip地址例
| 代碼如下 |
複製代碼 |
function GetIP(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; } elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif(!empty($_SERVER["REMOTE_ADDR"])){ $cip = $_SERVER["REMOTE_ADDR"]; } else{ $cip = "無法擷取!"; } return $cip; } echo GetIP(); ?> |
我這裡有一個比較公用的方法來擷取使用者ip地址:
| 代碼如下 |
複製代碼 |
function get_user_ip() { if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']!='unknown') { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } |
PHP擷取IP所在地區(調用新浪API擷取IP所在地)
| 代碼如下 |
複製代碼 |
function get_location($ip){ $curl = curl_init(); curl_setopt($curl,CURLOPT_URL, "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip); $location = curl_exec($curl); $location = json_decode($location); if($location===FALSE) return ""; return empty($location->desc) ? $location->province.$location->city.$location->district.$location->isp : $location->desc; } |
http://www.bkjia.com/PHPjc/632798.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632798.htmlTechArticle在php中擷取IP地址的方法有很多種,下面我介紹利用linux命令擷取IP地址然後轉換成數組輸出,下面也介紹了一些常用關於php ip地址處理執行個體...