PHP获取访问用户IP
生活随笔
收集整理的這篇文章主要介紹了
PHP获取访问用户IP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
php 獲取本機外網/公網IP 大家一般都是用$_SERVER['REMOTE_ADDR']來獲取用戶IP,
但是如果使用了反向代理的,HTTP頭中REMOTE_ADDR就不是用戶的地址,反而是上一級代理的地址了。
經過我的研究有兩種方法來獲取用戶的真實外網IP。
方法一:curl
代碼 function get_onlineip() {$ch = curl_init('http://www.ip138.com/ip2city.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/\[(.*)\]/', $a, $ip);
return $ip[1];
}
?
?
方法二:$_SERVER['HTTP_X_FORWARDED_FOR']來獲取相應的地址
代碼 function get_onlineip() {$onlineip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}
?
轉載于:https://www.cnblogs.com/ooyiye/archive/2010/07/06/1772398.html
總結
以上是生活随笔為你收集整理的PHP获取访问用户IP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET框架程序设计
- 下一篇: 桌面便签软件PNotes