十分简单的问题,ip怎么样比较呢? if(strcmp($ip1,$ip2)==0)echo "equal";if(strcmp($ip1,$ip2)>0)echo "1>2";if(strcmp($ip1,$ip2)<0)echo "1<2"; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 vivanboy(被迫早起的鸟儿)(★★★★★) :有呵,我要完成屏蔽这一段的ip不能访问功能呵 要比较 IP 的范围,必须先把aaa.bbb.ccc.ddd形式的字符串转换为整型一般都应该是前面的部分相同,后面的部分不同,例如 aaa.bbb 固定,而 ccc.ddd 在一个范围内,或者 aaa.bbb.ccc 固定,而 ddd 在一个范围内这是,只需要把后面的部分转换为整数:对 ccc.ddd:$s_ip = "aaa.bbb.ccc.ddd";$a = explode('.',$s_ip);$i_ip = $a[2]*256+$a[3];//假设要限定在 "xxx.xxx.111.111" - "xxx.xxx.222.222" 之间:// 111=0x6f, 222=0xdeif ( 0x6f6f <= $i_ip && $i_ip <= 0xdede ) //合法 IPelse //非法 IP要是只规定 ddd 就更简单了:$s_ip = "aaa.bbb.ccc.ddd";$a = explode('.',$s_ip);//假设要限定在 "xxx.xxx.xxx.111" - "xxx.xxx.xxx.222" 之间:if ( 0x6f <= $a[3] && $a[3] <= 0xde ) //合法 IPelse //非法 IP function ipVal($ip){ $e="(1[0-9]{2}|[1-9]?[0-9]|2[0-4][0-9]|25[0-5])"; if(ereg("^$e\.$e\.$e\.$e$",$ip,$arr)){ return (($arr[1]*256+$arr[2])*256+$arr[3])*256+$arr[4]; } else return -1;}echo ipVal("100.210.0.45")."<br>";echo ipVal("101.210.0.48")."<br>";echo ipVal("101.210.0.48")-ipVal("101.210.0.45")."<br>";echo ipVal("101.210.0.48")>ipVal("101.210.0.45")."<br>"; mysql如何按单双数结果并类? 跪求PHP滚动代码 []是什么意思 关于网页合成图片的问题,类似于qq秀 遇到存储问题,请高手解决 PHP怎样执行一个动态页到缓存中再生成静态页呢 图片下载的问题 我在win98下调试的问题。 使用 imagick : pdf转图片 php+ado无法连接access,请高手指教! 谁来推荐一个PHP+mysql的建站系统,包括新闻管理,最好还有论坛,分数要多少都有! 正则表达式的问题
有呵,我要完成屏蔽这一段的ip不能访问功能呵
aaa.bbb.ccc.ddd
形式的字符串转换为整型一般都应该是前面的部分相同,后面的部分不同,例如 aaa.bbb 固定,而 ccc.ddd 在一个范围内,或者 aaa.bbb.ccc 固定,而 ddd 在一个范围内
这是,只需要把后面的部分转换为整数:对 ccc.ddd:$s_ip = "aaa.bbb.ccc.ddd";
$a = explode('.',$s_ip);
$i_ip = $a[2]*256+$a[3];
//假设要限定在 "xxx.xxx.111.111" - "xxx.xxx.222.222" 之间:
// 111=0x6f, 222=0xde
if ( 0x6f6f <= $i_ip && $i_ip <= 0xdede )
//合法 IP
else
//非法 IP要是只规定 ddd 就更简单了:$s_ip = "aaa.bbb.ccc.ddd";
$a = explode('.',$s_ip);
//假设要限定在 "xxx.xxx.xxx.111" - "xxx.xxx.xxx.222" 之间:
if ( 0x6f <= $a[3] && $a[3] <= 0xde )
//合法 IP
else
//非法 IP
$e="(1[0-9]{2}|[1-9]?[0-9]|2[0-4][0-9]|25[0-5])";
if(ereg("^$e\.$e\.$e\.$e$",$ip,$arr)){
return (($arr[1]*256+$arr[2])*256+$arr[3])*256+$arr[4];
}
else
return -1;
}
echo ipVal("100.210.0.45")."<br>";
echo ipVal("101.210.0.48")."<br>";
echo ipVal("101.210.0.48")-ipVal("101.210.0.45")."<br>";
echo ipVal("101.210.0.48")>ipVal("101.210.0.45")."<br>";