求取得浏览者IP地址的正确代码(包括公网和内网)! 内网的,其实也会有点用吧~我知道某些大学,出口的ip就那么几个,而几k上网学生,都是用诸如192.168的来上的,如果可以得到,还能知道哪些宿舍的.呵呵,当然,看你需要不需要了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个$_SERVER['REMOTE_ADDR']就够了吗?我看PHPBB的代码是下面这一大段:可是就是不知道是什么意思,哪位能给解释一下啊 ?谢谢了!-------------------------------------------------------------------------------if( getenv('HTTP_X_FORWARDED_FOR') != '' ){ $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR ); $entries = explode(',', getenv('HTTP_X_FORWARDED_FOR')); reset($entries); while (list(, $entry) = each($entries)) { $entry = trim($entry); if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) { $private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/', '/^224\..*/', '/^240\..*/'); $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); if ($client_ip != $found_ip) { $client_ip = $found_ip; break; } } }}else{ $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );}$user_ip = $client_ip; 你不试着打印一下$_SERVER['REMOTE_ADDR']就知道了,看看是不是自己机子的IP喽。 function getIp() { $ip1 = getenv("REMOTE_ADDR")?getenv("REMOTE_ADDR"):"none"; $ip2 = getenv("HTTP_X_FORWARDED_FOR")?getenv("HTTP_X_FORWARDED_FOR"):"none"; $ip3 = getenv("HTTP_CLIENT_IP")?getenv("HTTP_CLIENT_IP"):"none"; if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") { return $ip1; } elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") { return $ip2; } elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") { return $ip3; } else { return "none"; }} echo $_SERVER['REMOTE_ADDR'];可能只是取得对方的网关IP(代理),如果对方用了代理上网的话。参数改为HTTP_X_FORWARDED_FOR则可能取得对方的代理IP和真实的IP,但也不是绝对…… 公网的很容易取到!内网的要采用ACTIVEX,用VB写个ACTIVEX很简单的!呵呵! 谁有ewebedit php版本的? 关于 fckeditor 问题 请教一下各位大大们 谢谢 小菜鸟求助一个简单问题 关于手动修改设置的一个问题 如何在用PHP生成的excle表里插入图片? ■■求购一套仿阿里巴巴功能的系统,希望是广东省的软件公司或者个人团体 php当前页面传值问题 请问关于php语法的问题 在linux中怎么配置pdflib和php 高分!!急!!! 关于5.6里【严格的 json_decode()】的兼容性问题 请问? 我有一台服务器上的PHP不能上传,可能会是什么问题?程序在自己机子上调试成功的. 一个关于MYSQL数据库查询效率问题
可是就是不知道是什么意思,哪位能给解释一下啊 ?谢谢了!
-------------------------------------------------------------------------------
if( getenv('HTTP_X_FORWARDED_FOR') != '' )
{
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR ); $entries = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
reset($entries);
while (list(, $entry) = each($entries))
{
$entry = trim($entry);
if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
{
$private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/', '/^224\..*/', '/^240\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
}
$user_ip = $client_ip;
$ip1 = getenv("REMOTE_ADDR")?getenv("REMOTE_ADDR"):"none";
$ip2 = getenv("HTTP_X_FORWARDED_FOR")?getenv("HTTP_X_FORWARDED_FOR"):"none";
$ip3 = getenv("HTTP_CLIENT_IP")?getenv("HTTP_CLIENT_IP"):"none";
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
return $ip3;
}
else {
return "none";
}
}
可能只是取得对方的网关IP(代理),如果对方用了代理上网的话。
参数改为HTTP_X_FORWARDED_FOR则可能取得对方的代理IP和真实的IP,但也不是绝对……
呵呵!