<?php
//方法1:
$ip
=
$_SERVER
[
"REMOTE_ADDR"
];
echo
$ip
;
//方法2:
$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
;
//方法3:
function
getRealIp()
{
$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
getRealIp();
//方法4:
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
;
//方法5:
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
;