如何禁止某个地区或国家IP访问网站
有两种方案,请自行选择
第一种方案:网站用ASP或者PHP代码调用IP数据库进行判断,网站设置好哪些城市可以访问,哪些城市不可以访问,比如说,网站不能让北京的来的访客访问,那么如果北京来的Ip的话,网站进行ip判断,如果是北京来的就让他访问其它的页面,如果不是北京来的访客就让他正常访问,要求是ip数据库用IP纯真数据库查询地区的IP段时保存成TXT格式,或者数据库格式,这样代码调用时侯就会快一些,不能采用直接到淘宝IP数据库或者IP的网站对比IP数据,那样的话网站打开很慢,可以把他们的IP数据库下载下来放到网站的根目录里面,这样网站打开会提高打开速度。
第二种方案:服务器限制某城市访问,在服务器上面设置黑名单城市,如果是黑名单城市来的访问就让他拒绝访问,如果不是黑名单来的城市访客,就让他正常访问。
第一种方案:网站用ASP或者PHP代码调用IP数据库进行判断,网站设置好哪些城市可以访问,哪些城市不可以访问,比如说,网站不能让北京的来的访客访问,那么如果北京来的Ip的话,网站进行ip判断,如果是北京来的就让他访问其它的页面,如果不是北京来的访客就让他正常访问,要求是ip数据库用IP纯真数据库查询地区的IP段时保存成TXT格式,或者数据库格式,这样代码调用时侯就会快一些,不能采用直接到淘宝IP数据库或者IP的网站对比IP数据,那样的话网站打开很慢,可以把他们的IP数据库下载下来放到网站的根目录里面,这样网站打开会提高打开速度。
第二种方案:服务器限制某城市访问,在服务器上面设置黑名单城市,如果是黑名单城市来的访问就让他拒绝访问,如果不是黑名单来的城市访客,就让他正常访问。
使用CloudFlare 。
CloudFlare是最简单和最直接的方式来达到禁止某个地区或国家IP访问网站。
这个方法需要先启用CloudFlare帐户,而且Bluehost免费支持CloudFlare,必须先登录Bluehost的cPanel网站控制面板后台启用CloudFlare。通过在CloudFlare里添加自定义规则就可轻松地禁止个别IP地址、IP段或任何一个国家访问你的网站。
php判断ip地址是否正确的代码
想要正确的使用正则表达式来判断 IP 地址正确与否,重点就是如何使用正则表达式来表示 IP 中的 4 个数字,保证它们的取值范围在 0~255 之间。
如下所示:
([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5])
有了上面的正则表达式,定义好4组数正则表达式
((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))
至此正则表达式就是定义好了,将它放到代码中来验证一下,代码如下所示:
function validateip($ip){
$preg="/^((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))/";
preg_match($preg,$ip,$matches);
if(!empty($matches)) return 1;
return 0;
}
$arr_ip = [
这里放入要检查IP,用","分隔多个IP
];
foreach ($arr_ip as $value) {
if(validateip($value)){
echo $value.' 是正确的 IP 地址
';
}else{
echo $value.' 不是正确的 IP 地址
';
}
}
?>