【发布时间】:2012-06-15 01:16:26
【问题描述】:
我正在编写一个程序,希望自动识别用户所在的国家/地区。我编写了获取 ip 并将其存储在数据库中的代码。
$ip = gethostbyname($_SERVER['REMOTE_ADDR']);
存储:
<?php `$result = mysql_query("INSERT INTO `wh_order` (`name`, `email`, `contact`, `itemid`, `itemquantity`, `ip`,`message`, `date`) VALUES('".$name."','".$email."','".$contact."','".$itemid."','".$itemquantity."','".$ip."','".$message."', NOW())");` ?>
另外,这是存储IP地址的最佳方法吗?
【问题讨论】:
-
仅通过存储用户的ip如何识别位置?
-
有各种 API 可以尝试从 IP 建议国家/地区,但这并不可靠,因为它并不总是准确的,并且用户 IP 可能被阻止或者他们可能正在使用 VPN。根据您的需要,您可以查看他们设置的语言环境,但这也有同样的问题。这将是一个最好的猜测。
-
将 IP 地址存储为 int:daipratt.co.uk/mysql-store-ip-address
-
$_SERVER['REMOTE_ADDR'] 本身会为您提供 IP。您需要安装 Maxmind 的 GeoIP 之类的东西才能从 IP 地址获取国家代码。
标签: php sql geolocation ip