要获取我正在使用的用户IP:
$ip = $_SERVER['REMOTE_ADDR'];
我有一个包含以下表格的地理数据库:
blocks
locations
zipcodes
nations
dma_codes
states
这是我感兴趣的表
start_ip | end_ip | location_id
-------------------------------
33996344 | 33996351 | 16373
50331648 | 67166463 | 223
etc...
以上只是该表中1,866,401行的前2条记录。我不知道这是哪个地理数据库。 Maybye MaxMind但不确定。我从客户端以前的开发人员那里继承了这个项目,他们上传了这个数据库但是还没有对它做任何事情。所以我没有代码样本可以继续。
任何人都可以解释一下,如果我的IP地址恰好是:{/ 1>,我会得到location_id
72.63.83.41
也有人识别这些表名,所以我可以找出这是哪个地理数据库。
答案 0 :(得分:2)
IPv4地址只是32位整数,您可以使用MySQL通过inet_ntoa()
(数字到ascii)和inet_aton()
(ascii到数字)将'字符串'IP地址转换为/从这些整数转换
SELECT location_id
FROM yourtable
WHERE INET_ATON('70.63.83.41') BETWEEN start_ip AND end_ip
会为您提供该特定IP的匹配location_id。