使用了CloudFlare 的CDN,怎么找出网站的真实IP

使用了CloudFlare 的CDN,怎么找出网站的真实IP,第1张

源站ip是你购买服务器的时候服务商就给你的ip了

如果你使用了cdn,源站ip会被隐藏,是不能找出来的。

如果你觉得cloudflare的cdn加速效果不明显,可以换加速乐cdn。

使用了国外的空间的站长经常会苦恼空间访问速度慢,DNS解析反应慢的问题。为了解决这些问题,最好的办法就是使用CDN,加快博客和网站从国内的访问速度,提高用户体验度。而且适合DZ使用任何一种CDN产品之后照成的这种情况。

首先说手该问题导致的结果:

1.Discuz论坛可能无法获得用户的真实IP,导致某些用户IP显示的是CDN产品节点的IP

2.论坛访问量过大的话,可能会导致用户访问时提示“抱歉,您的 IP 地址不在被允许,或您的账号被禁用,无法访问本站点”

接下来谈谈产生原因:

使用CDN,对于网站访客来说,相当于使用了代理访问,而DZ在设计上,是优先获取代理IP,其它才会检测代理服务器是否将用户真实IP传输过来,也就是说获取代理IP优先于用户真实IP。如果您的网站不需要对用户访问做过多的限制,强烈建议按照以下方法进行:

第一种(DZ X2版本):打开DZ,/source/class/class_core.php 文件;

搜索“HTTP_CLIENT_IP”,找到下面这段代码:

function _get_client_ip() {

$ip = $_SERVER[‘REMOTE_ADDR’]

if (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’]

} elseif(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’]) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER[‘HTTP_X_FORWARDED_FOR’], $matches)) {

foreach ($matches[0] AS $xip) {

if (!preg_match(‘#^(10|172\.16|192\.168)\.#’, $xip)) {

$ip = $xip

break

}

}

}

return $ip

}

替换成一下代码:

function _get_client_ip() {

$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’]

}

return $ip

}

希望可以帮助到你


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/54571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存