分享PHP获取客户端IP的几种不同方式
PHP获取IP的方法有许多种,我们今天向大家总结了六种方法,希望通过对这六种方法的学习,能够加深我们对PHP语言的进一步了解,巩固我们所掌握的知识。
PHP获取IP方法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function GetIP() { if (! empty ( $_SERVER [ "HTTP_CLIENT_IP" ])) $cip = $_SERVER [ "HTTP_CLIENT_IP" ]; else if (! empty ( $_SERVER [ "HTTP_X_FORWARDED_FOR" ])) $cip = $_SERVER [ "HTTP_X_FORWARDED_FOR" ]; else if (! empty ( $_SERVER [ "REMOTE_ADDR" ])) $cip = $_SERVER [ "REMOTE_ADDR" ]; else $cip = "无法获取!" ; return $cip ; } echo "<br>" ; |
PHP获取IP方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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地址是:" . $ip . "<br>" ; |
PHP获取IP方法三:
1
2
3
|
$iipp = $_SERVER [ "REMOTE_ADDR" ]; echo $iipp ; echo "<br>" ; |
PHP获取IP方法四:
1
2
3
|
$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 . "<br>" ; |
PHP获取IP方法五:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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(); echo "<br>" ; |
PHP获取IP方法六:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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 ; echo "<br>" ; |