代码一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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 ; } |
代码二:
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
|
<?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 ; ?> |
方法三:
1
2
3
4
|
<?php $iipp = $_SERVER [ "REMOTE_ADDR" ]; echo $iipp ; ?> |
方法四:
1
2
3
4
5
|
<?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 ?> |
方法五:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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(); ?> |
方法六:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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 ; ?> |