不确定这是否是正确的 SE 站点。我认为这个问题不属于 SO,但如果您认为它也不属于这里,我深表歉意。
我一直在研究确定访问我网站的用户的位置,特别是状态。我已经知道一段时间的选项之一是GeoIP City Database,但这不是最具成本效益的解决方案,而且我很便宜,所以我一直在寻找一种更便宜的方法。我突然想到,我的状态在 Comcast 分配给我的公共主机名中:
(Dash Separated IP).hsd1.ma.comcast.net
其他 ISP 是否有可能遵循将州缩写插入其用户主机名的相同模式?我一直在四处寻找其他 ISP 的主机名列表,但我什么也没找到。任何人都可以验证这是否适用于其他主要 ISP?
编辑:您的州在您的主机名中吗?是缩写还是写出来?它在它自己的子域中吗?
经过更多的挖掘,我发现 Verizon FiOS 客户的主机名中有位置数据。他们遵循的一般模式似乎是:
static-(Dash Separated IP).(City Abbreviation)(State Abbreviation).fios.verizon.net
例如,波士顿的 FiOS 客户的主机名如下所示:
static-(Dash Separated IP).bstnma.fios.verizon.net
我可以从中提取一个状态,使我相信必须有其他 ISP 遵循这种模式。其他人可以通过检查他们的主机名是否包含他们的状态来确认吗?
GeoIP 还提供免费版本,但有明显的缺点,例如不够准确。在这里能找到它:
http://www.maxmind.com/app/geolite
如果您对网站的网络分析感兴趣。我推荐使用 piwik。这是一个免费的解决方案,并将 GeoIP 作为插件内置。它会告诉你你的流量来自哪里,而且你拥有所有数据,这与使用谷歌分析不同。对于不希望另一家公司拥有其数据的大公司和小公司来说,这可能是个问题。
就 MO 而言,我没有来自 ISP 的状态。