【发布时间】:2010-07-15 15:10:40
【问题描述】:
是否有人知道确定传入 IP 是否来自移动运营商的好方法(免费或付费)?
之前有一个问题: API to determine cell carrier?
答案是“使用 ISP 数据库并匹配名称”。我想我希望在这个问题被问到一年半之后,有人想出了一些更干净的东西?
手指交叉
【问题讨论】:
是否有人知道确定传入 IP 是否来自移动运营商的好方法(免费或付费)?
之前有一个问题: API to determine cell carrier?
答案是“使用 ISP 数据库并匹配名称”。我想我希望在这个问题被问到一年半之后,有人想出了一些更干净的东西?
手指交叉
【问题讨论】:
我有一个移动网站,我需要进行 IP 地理定位。我查看了几个 IP-> 位置数据库。其中之一是 MaxMind。他们有一个免费的数据库,可以提供城市级别的准确性,但他们也有一个付费数据库(相当合理的费用),可以为您提供更多详细信息,包括移动用户正在使用的移动运营商。
转到http://www.maxmind.com 并将您的IP 放入演示输入框(位于首页),您将看到您可以获得的详细信息。这是您需要的 API:http://www.maxmind.com/app/isp
就像我说的,我只使用城市级别的详细数据库,因此无法保证移动运营商的覆盖范围。但在我最初的测试中,它似乎总是为我测试的英国、爱尔兰和亚洲手机返回不错的值。
Rgds,凯文。
【讨论】:
如果这是针对网站的,您可以检查 HTTP_USER_AGENT。这当然可以伪造。
如果这确实适用于网站,请让您的用户选择查看非移动优化版本!
【讨论】:
您可以使用 hostip。他们拥有不断变化的 IP 列表及其所在位置。
您可以获得该 IP 的物理位置、国家/地区和主机名等信息。
您可以使用正则表达式或其他方式轮询数据并对照预先定义的运营商列表检查主机名。
更多信息在这里:http://www.hostip.info/
【讨论】:
NetAcuity aka Digital Envoy 有运营商定位(功能 24),通常是付费许可,但我相信他们有一个 30 天的试用计划。
【讨论】:
这是我用的:
if (preg_match("@(android|iphone|opera mini|blackberry)@is",$_SERVER['HTTP_USER_AGENT'])) {
$mobile = true;
} else {
$mobile = false;
}
【讨论】: