如何根据用户的IP地址获取用户的位置?

时间:2011-11-30 03:41:24

标签: php mysql geolocation ip-address

要获取我正在使用的用户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

也有人识别这些表名,所以我可以找出这是哪个地理数据库。

1 个答案:

答案 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。