PHP 獲取ip地址代碼匯總
更新時(shí)間:2015年07月05日 15:48:44 投稿:hebedich
本文給大家匯總介紹了6種php獲取IP的方法,有簡(jiǎn)單有復(fù)雜,大家根據(jù)自己的項(xiàng)目需求,自由選擇吧。
代碼一:
function getip() {
static $ip = '';
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
$ip = $_SERVER['HTTP_CDN_SRC_IP'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
foreach ($matches[0] AS $xip) {
if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
$ip = $xip;
break;
}
}
}
return $ip;
}
代碼二:
<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>
方法三:
<?php $iipp = $_SERVER["REMOTE_ADDR"]; echo $iipp ; ?>
方法四:
<?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; echo $user_IP ?>
方法五:
<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if($ip){
array_unshift($ips, $ip); $ip = FALSE;
}
for($i = 0; $i < count($ips); $i++){
if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
$ip = $ips[$i];
break;
}
}
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>
方法六:
<?php
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>
您可能感興趣的文章:
- php利用新浪接口查詢ip獲取地理位置示例
- php讀取qqwry.dat ip地址定位文件的類實(shí)例代碼
- PHP準(zhǔn)確取得服務(wù)器IP地址的方法
- php實(shí)現(xiàn)根據(jù)IP地址獲取其所在省市的方法
- PHP curl偽造IP地址和header信息代碼實(shí)例
- PHP 獲取客戶端真實(shí)IP地址多種方法小結(jié)
- PHP中根據(jù)IP地址判斷城市實(shí)現(xiàn)城市切換或跳轉(zhuǎn)代碼
- php實(shí)現(xiàn)獲取局域網(wǎng)所有用戶的電腦IP和主機(jī)名、及mac地址完整實(shí)例
- php中獲取遠(yuǎn)程客戶端的真實(shí)ip地址的方法
- php新浪微博登錄接口用法實(shí)例
- PHP采用curl模仿用戶登陸新浪微博發(fā)微博的方法
- PHP基于新浪IP庫(kù)獲取IP詳細(xì)地址的方法
相關(guān)文章
php計(jì)算數(shù)組不為空元素個(gè)數(shù)的方法
本文為大家介紹下php計(jì)算數(shù)組不為空元素個(gè)數(shù)的方法,需要的朋友可以參考下2014-01-01
php鏈?zhǔn)讲僮鱩ysql數(shù)據(jù)庫(kù)(封裝類帶使用示例)
本文代碼將一些簡(jiǎn)單常用的SQL語(yǔ)句,拆分、封裝成鏈?zhǔn)胶瘮?shù)與終結(jié)函數(shù),鏈?zhǔn)讲僮鳑]有先后之分,實(shí)現(xiàn)傻瓜式mysql數(shù)據(jù)庫(kù)操作。?同時(shí)學(xué)習(xí)下靜態(tài)成員函數(shù),實(shí)現(xiàn)鏈?zhǔn)讲僮鞯木唧w語(yǔ)法。2023-02-02
PHP實(shí)現(xiàn)的mongoDB數(shù)據(jù)庫(kù)操作類完整實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的mongoDB數(shù)據(jù)庫(kù)操作類,結(jié)合完整實(shí)例形式詳細(xì)分析了php基于單例模式針對(duì)mongoDB數(shù)據(jù)庫(kù)連接、增刪改查、統(tǒng)計(jì)等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
PHP利用MySQL保存session的實(shí)現(xiàn)思路及示例代碼
使用MySQL保存session,需要保存三個(gè)關(guān)鍵性的數(shù)據(jù):session id、session數(shù)據(jù)、session生命期,下面的示例,大家可以看看2014-09-09

