>  기사  >  백엔드 개발  >  php는 클라이언트의 실제 IP를 얻습니다.

php는 클라이언트의 실제 IP를 얻습니다.

WBOY
WBOY원래의
2016-07-29 08:41:17983검색

复代码 代码如下:


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教程有兴趣的朋友有所帮助.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.