问:我正在使用以下代码跟踪客户端地址,但是此代码在我们的本地服务器上运行良好,但是一旦我在实时服务器上托管,他们就会返回托管服务器IP而不是用户IP地址,如果有人知道他的解决方案,请回复我
$ ip ='';
$ _SERVER ['REMOTE_ADDR'] = $ _SERVER ['HTTP_X_REAL_IP'];
if(getenv('HTTP_CLIENT_IP'))
$ ip = getenv('HTTP_CLIENT_IP');
否则if(getenv('HTTP_X_FORWARDED_FOR'))
$ ip = getenv('HTTP_X_FORWARDED_FOR');
否则if(getenv('HTTP_X_FORWARDED'))
$ ip = getenv('HTTP_X_FORWARDED');
否则if(getenv('HTTP_FORWARDED_FOR'))
$ ip = getenv('HTTP_FORWARDED_FOR');
否则if(getenv('HTTP_FORWARDED'))
$ ip = getenv('HTTP_FORWARDED');
否则if(getenv('REMOTE_ADDR'))
$ ip = getenv('REMOTE_ADDR');
否则
$ ip ='未知';
返回$ ip;
答:<?php
//
如果((empty($ _ SERVER ['HTTP_CLIENT_IP']))
{{
ip_address = $ _SERVER ['HTTP_CLIENT_IP'];
}
// ip是否来自代理
elseif(!empty($ _ SERVER ['HTTP_X_FORWARDED_FOR']))
{
$ ip_address = $ _SERVER ['HTTP_X_FORWARDED_FOR'];
}
// ip是否来自远程地址,
否则{$ ip_address = $ _SERVER ['REMOTE_ADDR'];
}
回声$ IP_ADDRESS;
?>