代码一:
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 ;
?>
|