PHP獲取真實IP地址


 1 <?php
 2 
 3 function get_client_ipaddress($type = 0)
 4 {
 5     $type = $type ? 1 : 0;
 6     static $ip = NULL;
 7     if ($ip !== NULL)
 8         return $ip[$type];
 9     if ($_SERVER['HTTP_X_REAL_IP']) { //nginx 代理模式下,獲取客戶端真實IP
10         $ip = $_SERVER['HTTP_X_REAL_IP'];
11     } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { //客戶端的ip
12         $ip = $_SERVER['HTTP_CLIENT_IP'];
13     } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { //瀏覽當前頁面的用戶計算機的網關
14         $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
15         $pos = array_search('unknown', $arr);
16         if (false !== $pos)
17             unset($arr[$pos]);
18         $ip = trim($arr[0]);
19     } elseif (isset($_SERVER['REMOTE_ADDR'])) {
20         $ip = $_SERVER['REMOTE_ADDR']; //瀏覽當前頁面的用戶計算機的ip地址
21     } else {
22         $ip = $_SERVER['REMOTE_ADDR'];
23     }
24     // IP地址合法驗證
25     $long = sprintf("%u", ip2long($ip));
26     $ip   = $long ? array(
27         $ip,
28         $long
29     ) : array(
30         '0.0.0.0',
31         0
32     );
33     return $ip[$type];
34 }
35 
36 ?>

直接上代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM