php - 将 IP 存储为 unsigned int?

标签 php sql optimization ip

我读到在数据库中存储 IP 地址的最佳方法是创建一个 Unsigned Int(10) 字段。如何使用 PHP 转换 IP 地址?我试过使用

$this->ip = long2ip($_SERVER['REMOTE_ADDR']);

但这似乎行不通。我找到了使用

将其转换回 IP 地址的方法
$this->ip = sprintf("%u", ip2long($result['ip']));

最初如何转换 IP 地址?我应该为此使用 PHP 吗?或者集成到 MySQL 查询中会更好吗?

最佳答案

long2ip将整数转换为 IP 格式和 ip2long做相反的事情。

于是使用ip2long$_SERVER['REMOTE_ADDR']转换为整数存入数据库,读取后使用long2ip来自数据库的整数:

$long = ip2long($_SERVER['REMOTE_ADDR']);
$ip   = long2ip($long);

关于php - 将 IP 存储为 unsigned int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3828409/

相关文章:

php - composer 命令什么都不做

c# - 关于 global.asax 和那里的事件

mysql - 哪个更快 : correlated subqueries or join?

c++ - EASTL与STL,std::vector<uint64_t>::operator[]怎么会有这么大的性能差异

java - switch 中计算的 case 语句 (java)

java - Groovy Map<String,List<Map<String,String>>> 数据操作

php - 解码 laravel 4 Input::json()

php - Node ,带有 PHP api 服务器的 React Web 服务器

javascript - 无法使用 Angular $ http post将数据发布到实时服务器上的php,但在localhost上工作

php - SQL 使用 cast 而不是 int 字段