请问怎么分离得出ip里的前2(3)个ip段用于实现封ip功能?……来不及琢磨正则表达式了~:(

比如现在知道了211.157.102.25,
怎么得到这个ip的前2(3)段(即:211.157)???
---------------------------------------------------------------

$arr=explode(".","211.157.102.25");

echo $arr[0].".".$arr[1];
---------------------------------------------------------------

如果不用正则表达式可以用这个办法解决.

---------------------------------------------------------------
这个好像是js实现耶~
try like this

1<script>   
2s="211.157.102.25";   
3r=/\d{1,3}\\.\d{1,3}/g   
4alert(s.match(r)[0])   
5</script>

---------------------------------------------------------------
最佳方案:

 1   
 2$ip="211.157.102.25"; // 用户的ip   
 3  
 4$deny = array("211.157","202.118"); // 待封杀的ip或段   
 5  
 6for($i=0;$i<count($deny);$i++) {   
 7$deny[$i] = "/^$deny[$i].*/"; // 构造正则表达式   
 8$replarr[$i] = "kill"; // 构造替换串   
 9}   
10$ip = preg_replace($deny,$replarr,$ip);   
11  
12if($ip == "kill")   
13header("location:error.html");   
Published At
Categories with Web编程
Tagged with
comments powered by Disqus