ip存储数据类型

$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了么 
*/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值