$ip = '255.255.255.255';
$ip = '24.23.24.253';
//看看是否为一个合法的ip
function ip($ip_address) {
$ip = explode('.', $ip_address);
foreach ($ip as $v) {
if ($v > 255) {
return FALSE;
}
}
return TRUE;
}
//进行算法计算
function ipToInt($ip) {
$iparr = explode('.', $ip);
$num = 0;
$count = count($iparr);
for ($i = 0; $i < $count; ++$i) {
$num += intval($iparr[$i]) * pow(256, $count - ($i + 1));
}
return $num;
}
//进行判断
if (ip($ip)) {
echo $ip, '<br />';
$ip_int = ipToInt($ip);
echo $ip_int . '<br />';
echo long2ip($ip_int);
} else {
echo '你的ip不合法';
}
/*不少人把ip写存入数据库中用ip2long转换存放int类型的字段中,
但是,在不同的系统平台上,ip2long函数得到的值是不同的,
因此可能造成在从数据库中读出数据逆转ip时用long2ip得到的ip与原ip不符合
如果是mysql可以使用mysql系统函数INET_ATON与INET_NTOA解决,要么自己写函数,但是不建议用mysql中的函数因为影响效率
通过这样的方法是不是就好了吗 直接存储int(11) unsigned 不就ok了么
*/
ip存储数据类型
最新推荐文章于 2023-01-12 14:36:46 发布