下午好! 我想知道如何通过PHP在某些区域阻止我的网站。我不希望我的网站在所有地区运行 有人可以帮我吗?
答案 0 :(得分:0)
执行此操作的最佳方法是使用防火墙。另一种方法是使用Apache。一种简单的方法是使用此link。
使用此工具,您可以选择不打算服务的国家/地区,这将为您提供默认设置。
当然,我希望您不要打算阻止对伊朗人的服务:)
如果您仍然想阻止城市,请查看mod_security +GeoIP(假设您使用的是Apache)。
已更新:
您可以使用IptoLocation脚本(http://www.ip2location.com/),然后在从网站阻止城市或地区之后检查城市或地区。例如,您可以在http://location2ipaddress.com/处查询块信息。如果要使用.htaccess文件执行此操作,则只需IP地址范围数据-将其放入拒绝列表即可。
此外,您可以使用任何geoIP API查询访问者的位置。只需使用Google geoIP API即可查看可用内容。还有在线解决方案和可下载的数据库。
答案 1 :(得分: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();
}