网站博客禁止大陆IP访问该如何设置?
之前的文章说到很多开通谷歌adsense的博主被判无效流量的原因,就是它的网站国内和国外IP都能访问,导致部分使用科学上网的大陆网友在它的网页上同一时间产生了两个不同地区的IP。因为部分博主都有在做youtube引流到博客,所以为了避免IP这个问题被谷歌判定为无效流量,他们还是选择将博客禁止了大陆IP的访问。
那网站禁止大陆IP的访问该如何设置呢?
1.使用.htaccess文件:您可以在您的Web服务器上创建一个.htaccess文件,并使用Apache Web服务器模块mod_rewrite来阻止大陆IP地址的访问。以下是代码示例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:CF-IPCountry} ^CN$
RewriteRule ^(.*)$ - [F,L]
</IfModule> (图片复制还原代码)
2.使用IP地址黑名单:您可以找到大陆的IP地址范围,并在您的Web服务器或应用程序代码中创建一个黑名单,以阻止使用这些地址的请求。以下是代码示例:
<?php
$bannedIps = array("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16");
$ip = $_SERVER["REMOTE_ADDR"];
foreach ($bannedIps as $bannedIp) {
if (ip_in_range($ip, $bannedIp)) {
header("HTTP/1.0 403 Forbidden");
die("Your IP address is banned.");
}
}
function ip_in_range($ip, $range) {
if (strpos($range, "/") == false) {
$range .= "/32";
}
list($range, $netmask) = explode("/", $range, 2);
$range_decimal = ip2long($range);
$ip_decimal = ip2long($ip);
$wildcard_decimal = pow(2, (32 - $netmask)) - 1;
$netmask_decimal = ~ $wildcard_decimal;
return (($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal));
}
?> (图片复制还原代码)
3.使用地理位置限制:您可以使用一些Web服务,例如MaxMind的GeoIP数据库,来限制对您网站的访问。