下午好!我想知道如何通过 PHP 在某些地区阻止我的网站。我不希望我的网站在所有地区都运行 有人可以帮助我吗?
问问题
403 次
2 回答
0
最好的方法是使用防火墙。另一种方法是使用 Apache。一个简单的方法是使用这个链接。
使用此工具,您可以选择您不打算服务的国家/地区,这将为您提供默认设置。
当然,我希望你不打算阻止你为伊朗人提供服务:)
如果您仍然想尝试封锁城市,请查看mod_security +GeoIP(假设您使用的是 Apache)。
更新:
您可以使用 IptoLocation 脚本(http://www.ip2location.com/),然后您可以在阻止网站上的城市或地区之后检查城市或地区。例如,您可以在http://location2ipaddress.com/查询区块信息。如果您想使用 .htaccess 文件来执行此操作,那么您只需要 ip 范围数据 - 将其放入拒绝列表中即可。
此外,您可以使用任何 geoIP API 来查询访问者的位置。只需 google geoIP API 即可查看可用的内容。还有在线解决方案和可下载的数据库。
于 2018-11-19T20:29:06.837 回答
0
尝试使用 $_SERVER['REMOTE_ADDR'] 获取连接方的 IP,并检查 IP 所在的国家/地区是否在您的阻止列表中。这是一个可以帮助您的代码片段
$cip = $_SERVER['REMOTE_ADDR'];
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorcountry = file_get_contents($iptolocation);
$creatorcountry 将包含连接方的国家/地区,您可以查看被阻止的国家/地区列表,然后返回 false 作为响应
if (in_array(strtolower($creatorcountry), $blockedCountryList)) {
echo "Your country is blocked."
exit();
}
于 2018-11-19T21:36:18.000 回答