如何在保存到数据库之前将IP地址转换为整数

时间:2012-03-12 10:09:58

标签: php mysql

我在一些帖子中读过,IP地址可以在mysql db中转换并保存为整数。有人能举例说明吗?

提前致谢。

4 个答案:

答案 0 :(得分:7)

答案 1 :(得分:6)

ip2long()

http://php.net/manual/en/function.ip2long.php

由于您说要将其与MySQL数据库一起使用,因此请使用这两个函数来转换和转换为与MySQL INET_ATON和INET_NTOA兼容的数字。

<?php
    function convertIpToString($ip)
    {
        $long = 4294967295 - ($ip - 1);
        return long2ip(-$long);
    }
    function convertIpToLong($ip)
    {
        return sprintf("%u", ip2long($ip));
    }
?>

参考MySQL函数:

INET_ATON()     -- Return the numeric value of an IP address
INET_NTOA()     -- Return the IP address from a numeric value

http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton

答案 2 :(得分:1)

ip2long $ip = ip2long($ip);

check this link too

答案 3 :(得分:0)

您可以使用ip2long()转换为int

$Db_ip=ip2long("127.0.0.1"); 

获取IP地址

$ip = long2ip($Db_ip); // "127.0.0.1"