众所周知long2ip的作用是ip1.ip2.ip3.ip4(123.131.231.212)
long ip => (ip1 * 256 * 256 * 256) + (ip2 * 256 * 256) + (ip3 * 256) + ip4
2072242132 => (123 * 256 * 256 * 256) + (131 * 256 * 256) + (231 * 256) + 212
但是将此数字转换回 IP 地址的伪代码是什么?
此外,对于每秒大约有 500 多个 IP 查询的流量分析网站,在 MySQL 中存储 IP 地址的最合适方式是什么?
如果为每个 IP 创建一个具有唯一 ID 的表,然后将其用于查找,会不会更好?
谢谢
最佳答案
$long = ip2long("123.131.231.212");
$ip = array();
array_unshift($ip, $long & 0xFF);
array_unshift($ip, ($long >>= 8) & 0xFF);
array_unshift($ip, ($long >>= 8) & 0xFF);
array_unshift($ip, ($long >>= 8) & 0xFF);
// $ip =
// Array
// (
// [0] => 123
// [1] => 131
// [2] => 231
// [3] => 212
// )
关于php - iptolong是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162495/