Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12269532
  • 博文数量: 187
  • 博客积分: 7517
  • 博客等级: 少将
  • 技术积分: 1981
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-20 18:51
文章分类

全部博文(187)

文章存档

2015年(3)

2013年(4)

2012年(20)

2011年(2)

2010年(96)

2009年(14)

2008年(47)

2007年(1)

我的朋友

分类: 系统运维

2010-04-17 23:07:14

先说PHP的 :)

原帖:

php中限制ip段访问

在应用中用到写下的,如果大家有更好的写法,放出来一同分享!谢谢!!

$ 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;

}

?>

在蓝色经典找到的解答 也很不错:

代码如下:

----------------------------

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

if(ereg($ thenetip,$ ip_lib[$ i])){

$ allow=1;

break;

}

}

if ($ allow==1)

{

echo "验证通过";

}

else {

echo "";

}

?>

--------------------------

代码结束!

说明:

待自己建立test.ini文件

在这个文件里输入允许访问的IP段

如:

110.110.110

111.111.111

112.112.112

192.168.1

192.168.0

... ...

等等 

只需要输入前三位就行了

地址:

ASP的:

原地址:http://www.emagister.cn/cursos-asp%E9%99%90%E5%88%B6ip%E8%AE%BF%E9%97%AE-simcour-2194415.htm

<%

''获取访问者的地址

ip=Request.ServerVariables("REMOTE_ADDR")

''允许的IP地址段为10.0.0.0~10.68.63.255

allowip1="10.0.0.0"

allowip2="10.68.10.71"

response.write checkip(ip,allowip1,allowip2)

function checkip(ip,allowip1,allowip2)

dim check(4)

checkip=false

ipstr=split(ip,".")

allow1=split(allowip1,".")

allow2=split(allowip2,".")

if cint(allow1(0))>cint(allow2(0)) then ''判断IP地址段是否合法

response.write "禁止访问"

exit function

end if

for i=0 to ubound(ipstr)

if cint(allow1(i))

if cint(allow1(i))=cint(ipstr(i)) then

check(i)=true

checkip=true

exit for

else

if cint(ipstr(i))

check(i)=true

checkip=true

exit for

else

if cint(ipstr(i))>cint(allow2(i)) then

check(i)=false

checkip=false

exit for

else

check(i)=true

checkip=true

end if

end if

end if

else

if cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))

check(i)=false

checkip=false

if i<>ubound(ipstr) then

exit for

end if

else

check(i)=true

end if

end if

next

if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then

checkip=true

end if

end function

%>

阅读(349) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~