使用nat123端口映射后,可能会遇到phpwind网站无法获取用户真实IP的情况,对应解决方法有下。
phpwind8.5的方法:
修改 /require/common.php搜索“HTTP_CLIENT_IP”,找到如下代码function pwGetIp() {
global $pwServer, $db_xforwardip;if ($db_xforwardip) {
if ($pwServer['HTTP_X_FORWARDED_FOR'] && $pwServer['REMOTE_ADDR']) {if (strstr($pwServer['HTTP_X_FORWARDED_FOR'], ',')) {
$x = explode(',', $pwServer['HTTP_X_FORWARDED_FOR']);$pwServer['HTTP_X_FORWARDED_FOR'] = trim(end($x));
}if (preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $pwServer['HTTP_X_FORWARDED_FOR'])) {return $pwServer['HTTP_X_FORWARDED_FOR'];}
} elseif ($pwServer['HTTP_CLIENT_IP'] && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $pwServer['HTTP_CLIENT_IP'])) {return $pwServer['HTTP_CLIENT_IP'];}}
$db_xforwardip = 0;if (preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $pwServer['REMOTE_ADDR'])) {return $pwServer['REMOTE_ADDR'];}
return 'Unknown';}
将其修改为如下代码:function pwGetIp() {
global $pwServer, $db_xforwardip;$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_FORWARDED_FOR'])) {$ip = $_SERVER['HTTP_X_REAL_FORWARDED_FOR'];
}elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}
elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {$ip = $_SERVER['HTTP_CLIENT_IP'];
}}
phpwind 8.7方法:
其它8.x版本可能有差异,可以对照修改。
修改 /require/common.php搜索“HTTP_CLIENT_IP”,找到如下代码if (strstr($pwServer['HTTP_X_FORWARDED_FOR'], ',')) {
$x = explode(',', $pwServer['HTTP_X_FORWARDED_FOR']);$pwServer['HTTP_X_FORWARDED_FOR'] = trim(end($x));
}} elseif ($pwServer['HTTP_CLIENT_IP'] && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $pwServer['HTTP_CLIENT_IP'])) {return $pwServer['HTTP_CLIENT_IP'];}
}return 'Unknown';
}
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}$ip = $_SERVER['HTTP_CLIENT_IP'];
}
if (strstr ( $_SERVER ['HTTP_X_FORWARDED_FOR'], ',' )) {
$x = explode ( ',', $_SERVER ['HTTP_X_FORWARDED_FOR'] );$_SERVER ['HTTP_X_FORWARDED_FOR'] = trim ( end ( $x ) );
}$ip = $_SERVER ['HTTP_X_FORWARDED_FOR'];
}}
if (! $ip && preg_match ( '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER ['REMOTE_ADDR'] )) {$ip = $_SERVER ['REMOTE_ADDR'];
}}
return $ip;
快速了解相关:
使用端口映射还是动态域名解析?>
端口映射与动态域名解析的区别?>
选择什么映射类型?
80映射与网站加速的区别?>
本地加速与网站加速的区别?>
免费与VIP的区别?>
如何选择映射VIP?
如何使用映射VIP(80网站)?>
如何使用映射VIP(非网站)?>
如何使用动态域名解析VIP服务?
如何使用自己的域名(根域名和www子域名)?>
客户端帐号能否多处登陆?
当前活动:
1.
非80映射免费VIP。
2.
80映射免费VIP全映射。
3.
非网站免费VIP全端口。
4.
充值送N币再送T币。
5.
站外分享送T币活动。
端口映射高级功能:
1.
如何切换使用映射VIP线路。
2.
http穿透解决http屏蔽问题。
3.
端口映射应用多机负载均衡。
4.
80映射网站默认使用快照提示取消。
5.
映射网站默认未登录提示页面自定义。
6.
如何设置映射网站离线转跳自定义目标地址。
7.
防火墙与访问日志(查看来访者IP和阻止IP端口)。
8.
80网快照录制和缓存删除。
9.
自主发布映射服务。
10.
自主选择网站集群线路访问端国内外区域。
动态域名解析高级功能:
1.
动态域名解析应用多机负载均衡。
2.
动态域名解析VIP怎么用。
域名解析高级功能:
1.
域名解析A记录宕机检测和故障转移。
2.
URL显性转发和隐性转发。
3.
URL转发默认提示取消。
远程开机:
1.
微信/网页远程开机。
![]() |
![]() |
![]() |