限制ip地址段访问的php代码
如何用PHP语言写限制IP段访问的程序呢?比如我要限制IP段195.163.072.000至195.163.079.255的访问...
如何用PHP语言写限制IP段访问的程序呢?
比如我要限制IP段195.163.072.000 至195.163.079.255的访问 展开
比如我要限制IP段195.163.072.000 至195.163.079.255的访问 展开
3个回答
展开全部
<?php
$userip = $_SERVER['REMOTE_ADDR']; //获得用户ip
$userips = explode(".", $userip);//把获得的ip切开成数组
if(($userips[0]<=195 && $userips[0]>=195)&&($userips[1]<=163 && $userips[1]>=163)&&($userips[2]<=079 && $userips[2]>=072)&&($userips[3]<=255 && $userips[3]>=000)){
echo "您的ip不符!";
exit;
}else{
echo "通过验证!";
}
?>
我的思路就是这样的
获得用户的IP 用"."分割成数组
再将 限制IP断 分别用"."分割成数组
然后判断用户IP是否在这个IP断内(分别判断四个元素是否在这个范围里)
……
下面是蓝色理想里找到的一个供你参考
——————————————————
<?php
class IP{ //获取客户IP地址
function getIpAdr(&$ ip){
$ ip1=getenv("HTTP_X_FORWARDED_FOR");
$ ip2=getenv("HTTP_CLIENT_IP");
$ ip3=getenv("REMOTE_ADDR");
if($ ip1&&$ ip1!='unknow')
$ ip=$ ip1;
else if($ ip2&&$ ip2!='unknow')
$ ip=$ ip2;
else if($ ip3&&$ ip3!='unknow')
$ ip=$ ip3;
else
$ ip='127.0.0.1';
}
}
function get_netip($ myip){ //只留客户IP地址的前三位
$ temp=explode(".",$ myip);
$ netip.=$ temp[0];
$ netip.=".";
$ netip.=$ temp[1];
$ netip.=".";
$ netip.=$ temp[2];
return $ netip;
}
$ filename="test.ini"; //定义操作文件
$ ip_lib=file($ filename); //读取文件数据到数组中
$ allow=0;
$ IP=new IP;
$ thisip="";
$ IP->getIpAdr(&$ thisip);
$ thenetip=get_netip($ thisip);
for($ i=0;$ i<count($ ip_lib);$ i++){
if(ereg($ thenetip,$ ip_lib[$ i])){
$ allow=1;
break;
}
}
if ($ allow==1)
{
echo "验证通过";
}
else {
echo "<script>location.href='Error.php';</script>";
}
?>
$userip = $_SERVER['REMOTE_ADDR']; //获得用户ip
$userips = explode(".", $userip);//把获得的ip切开成数组
if(($userips[0]<=195 && $userips[0]>=195)&&($userips[1]<=163 && $userips[1]>=163)&&($userips[2]<=079 && $userips[2]>=072)&&($userips[3]<=255 && $userips[3]>=000)){
echo "您的ip不符!";
exit;
}else{
echo "通过验证!";
}
?>
我的思路就是这样的
获得用户的IP 用"."分割成数组
再将 限制IP断 分别用"."分割成数组
然后判断用户IP是否在这个IP断内(分别判断四个元素是否在这个范围里)
……
下面是蓝色理想里找到的一个供你参考
——————————————————
<?php
class IP{ //获取客户IP地址
function getIpAdr(&$ ip){
$ ip1=getenv("HTTP_X_FORWARDED_FOR");
$ ip2=getenv("HTTP_CLIENT_IP");
$ ip3=getenv("REMOTE_ADDR");
if($ ip1&&$ ip1!='unknow')
$ ip=$ ip1;
else if($ ip2&&$ ip2!='unknow')
$ ip=$ ip2;
else if($ ip3&&$ ip3!='unknow')
$ ip=$ ip3;
else
$ ip='127.0.0.1';
}
}
function get_netip($ myip){ //只留客户IP地址的前三位
$ temp=explode(".",$ myip);
$ netip.=$ temp[0];
$ netip.=".";
$ netip.=$ temp[1];
$ netip.=".";
$ netip.=$ temp[2];
return $ netip;
}
$ filename="test.ini"; //定义操作文件
$ ip_lib=file($ filename); //读取文件数据到数组中
$ allow=0;
$ IP=new IP;
$ thisip="";
$ IP->getIpAdr(&$ thisip);
$ thenetip=get_netip($ thisip);
for($ i=0;$ i<count($ ip_lib);$ i++){
if(ereg($ thenetip,$ ip_lib[$ i])){
$ allow=1;
break;
}
}
if ($ allow==1)
{
echo "验证通过";
}
else {
echo "<script>location.href='Error.php';</script>";
}
?>
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
$intRemoteIp = ip2long($_SERVER['REMOTE_ADDR']);
if (($intRemoteIp - ip2long('195.163.072.000')) * ($intRemoteIp - ip2long('195.163.079.255')) > 0) {
exit('IP禁止');
}
if (($intRemoteIp - ip2long('195.163.072.000')) * ($intRemoteIp - ip2long('195.163.079.255')) > 0) {
exit('IP禁止');
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
php中限制ip段访问
在应用中用到写下的,如果大家有更好的写法,放出来一同分享!谢谢!!
<?php
$ userip = $ REMOTE_ADDR; //获得用户ip
$ userips = explode(".", $ userip);把获得的ip切开成数组
$ dataip = $ arr[ipt];//数据库中已定起始ip
$ dataips = explode(".", $ dataip);//把数据库中的限定的起始ip切开成数组
$ dataipw = $ arr[ipw];数据库中已定结速ip
$ dataipws = explode(".", $ dataipw);////把数据库中的限定的结束ip切开成数组
//比较ip的每一段
if ($ userips[0] == $ dataips[0] and $ userips[1] == $ dataips[1] and $ userips[2] == $ dataips[2] and $ userips[3] >= $ dataips[3] and $ userips[3] <= $ dataipws[3])
{echo "继续干想干的事!";
}
else
{echo "您的ip不符合,你不能**想干的事!";
exit;
}
?>
在蓝色经典找到的解答 也很不错:
代码如下:
----------------------------
<?php
class IP{ //获取客户IP地址
function getIpAdr(&$ ip){
$ ip1=getenv("HTTP_X_FORWARDED_FOR");
$ ip2=getenv("HTTP_CLIENT_IP");
$ ip3=getenv("REMOTE_ADDR");
if($ ip1&&$ ip1!='unknow')
$ ip=$ ip1;
else if($ ip2&&$ ip2!='unknow')
$ ip=$ ip2;
else if($ ip3&&$ ip3!='unknow')
$ ip=$ ip3;
else
$ ip='127.0.0.1';
}
}
function get_netip($ myip){ //只留客户IP地址的前三位
$ temp=explode(".",$ myip);
$ netip.=$ temp[0];
$ netip.=".";
$ netip.=$ temp[1];
$ netip.=".";
$ netip.=$ temp[2];
return $ netip;
}
$ filename="test.ini"; //定义操作文件
$ ip_lib=file($ filename); //读取文件数据到数组中
$ allow=0;
$ IP=new IP;
$ thisip="";
$ IP->getIpAdr(&$ thisip);
$ thenetip=get_netip($ thisip);
for($ i=0;$ i<count($ ip_lib);$ i++){
if(ereg($ thenetip,$ ip_lib[$ i])){
$ allow=1;
break;
}
}
if ($ allow==1)
{
echo "验证通过";
}
else {
echo "<script>location.href='Error.php';</script>";
}
?>
--------------------------
代码结束!
说明:
待自己建立test.ini文件
在这个文件里输入允许访问的IP段
如:
110.110.110
111.111.111
112.112.112
192.168.1
192.168.0
... ...
等等
只需要输入前三位就行了
地址:http://www.blueidea.com/bbs/NewsDetail.asp?id=2364567
在应用中用到写下的,如果大家有更好的写法,放出来一同分享!谢谢!!
<?php
$ userip = $ REMOTE_ADDR; //获得用户ip
$ userips = explode(".", $ userip);把获得的ip切开成数组
$ dataip = $ arr[ipt];//数据库中已定起始ip
$ dataips = explode(".", $ dataip);//把数据库中的限定的起始ip切开成数组
$ dataipw = $ arr[ipw];数据库中已定结速ip
$ dataipws = explode(".", $ dataipw);////把数据库中的限定的结束ip切开成数组
//比较ip的每一段
if ($ userips[0] == $ dataips[0] and $ userips[1] == $ dataips[1] and $ userips[2] == $ dataips[2] and $ userips[3] >= $ dataips[3] and $ userips[3] <= $ dataipws[3])
{echo "继续干想干的事!";
}
else
{echo "您的ip不符合,你不能**想干的事!";
exit;
}
?>
在蓝色经典找到的解答 也很不错:
代码如下:
----------------------------
<?php
class IP{ //获取客户IP地址
function getIpAdr(&$ ip){
$ ip1=getenv("HTTP_X_FORWARDED_FOR");
$ ip2=getenv("HTTP_CLIENT_IP");
$ ip3=getenv("REMOTE_ADDR");
if($ ip1&&$ ip1!='unknow')
$ ip=$ ip1;
else if($ ip2&&$ ip2!='unknow')
$ ip=$ ip2;
else if($ ip3&&$ ip3!='unknow')
$ ip=$ ip3;
else
$ ip='127.0.0.1';
}
}
function get_netip($ myip){ //只留客户IP地址的前三位
$ temp=explode(".",$ myip);
$ netip.=$ temp[0];
$ netip.=".";
$ netip.=$ temp[1];
$ netip.=".";
$ netip.=$ temp[2];
return $ netip;
}
$ filename="test.ini"; //定义操作文件
$ ip_lib=file($ filename); //读取文件数据到数组中
$ allow=0;
$ IP=new IP;
$ thisip="";
$ IP->getIpAdr(&$ thisip);
$ thenetip=get_netip($ thisip);
for($ i=0;$ i<count($ ip_lib);$ i++){
if(ereg($ thenetip,$ ip_lib[$ i])){
$ allow=1;
break;
}
}
if ($ allow==1)
{
echo "验证通过";
}
else {
echo "<script>location.href='Error.php';</script>";
}
?>
--------------------------
代码结束!
说明:
待自己建立test.ini文件
在这个文件里输入允许访问的IP段
如:
110.110.110
111.111.111
112.112.112
192.168.1
192.168.0
... ...
等等
只需要输入前三位就行了
地址:http://www.blueidea.com/bbs/NewsDetail.asp?id=2364567
参考资料: http://hi.baidu.com/%C3%C6%C9%F9%B7%A2%B4%F3%B2%C6/blog/item/bdc9fe1f0169a661f624e497.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询