qh663
版主
  
中级会员
UID 30020
精华
0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13 来自 河源
状态 离线
|
[推荐阅读] 求一复杂问题!(帮帮忙吧 )
QUOTE: 原帖由 sadly 于 2006-7-28 10:29 发表
呵呵,要sprintf的啊 sprintf("%u", ip2long($ip)); 为方便大家理解,我就没做太复杂的。在php4.0X下, sprintf("%u", ip2long($ip)); 的结果与php5的结果是不同的。所以也不敢用php自带的函数。可以考虑下面几个函数
<?php function long_2ip($long) { // Valid range: 0.0.0.0 -> 255.255.255.255 if ($long < 0 || $long > 4294967295) return false; $ip = ""; for ($i=3;$i>=0;$i--) { $ip .= (int)($long / pow(256,$i)); $long -= (int)($long / pow(256,$i))*pow(256,$i); if ($i>0) $ip .= "."; } return $ip; }
function ip2_long($ip){ $ip = explode(".",$ip); if (!is_numeric(join(NULL,$ip)) or count($ip) != 4) {return false;} else {return $ip[3]+256*$ip[2]+256*256*$ip[1]+256*256*256*$ip[0];} }
function check_ip($ip){ $arr = explode('.',$ip); if(count($arr) == 4){ foreach ($arr as $value) if ($value > 255 or $value<0 or !is_numeric ($value))return false; return true; } return false; } ?>
|  五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844 |
|