我读到在数据库中存储IP地址的最好方法是创建一个Unsigned Int(10)字段。如何使用PHP转换IP地址?我试过用
$this->ip = long2ip($_SERVER['REMOTE_ADDR']);但这似乎行不通。我找到了将其转换回IP地址的方法
$this->ip = sprintf("%u", ip2long($result['ip']));如何在开始时转换IP地址?我应该为此使用PHP吗?或者集成到MySQL查询中会更好?
发布于 2010-09-30 14:54:33
long2ip将整数转换为IP格式,而ip2long则相反。
因此,使用ip2long将$_SERVER['REMOTE_ADDR']转换为整数以将其存储在数据库中,并在从数据库中读取整数后使用long2ip:
$long = ip2long($_SERVER['REMOTE_ADDR']);
$ip = long2ip($long);发布于 2010-09-30 15:10:41
最好把这个逻辑放在你的SQL查询中:
INSERT INTO `table`
(`ip`)
VALUES
INET_ATON('192.168.0.1')然后在选择数据时隐蔽地返回地址:
SELECT INET_NTOA(`ip`)
FROM `table`发布于 2010-09-30 14:55:11
我用了这个
function ip2int($ip) {
$a = explode(".",$ip);
return $a[0] * 256 * 256 * 256 + $a[1] * 256 * 256 + $a[2] * 256 + $a[3];
}https://stackoverflow.com/questions/3828409
复制相似问题