复代码 代码如下:
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv( "HTTP_CLIENT_IP"), "알 수 없음"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "알 수 없음"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER[' REMOTE_ADDR'];
그 외
$ip = "알 수 없음";
반환($ip);
}
regist=off의 상태
if ($register_globals!=1) {
@extract($_SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
}
其中REMOTE_ADDR比较好理解,php 是这么说的>PHP 중 사용 $_SERVER[" REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
并不是每个代理服务器書限 $_SERVER["HTTP_X_FORWARDED_FOR" ] 来读取客户端的真实 IP ,유용한 사용 방법은 IP입니다.
至于HTTP_CLIENT_IP,유효한
'HTTP_CLIENT_IP'는 사용 가능한 IP,'HTTP_X_FORWARDED_FOR'리 IP
这些IP는 동일하지 않은 IP 기반 IP 기반(사용할 수 없는 IP 기반 IP 기반)입니다.消息判断一下,若有,则取其中的一个.
以上就介绍了 php 获取客户端的真实ip, 包括了方面的内容, 希望对PHP教程有兴趣的朋友有所帮助.