![使用主机名确定用户状态](https://linux22.com/image/587660/%E4%BD%BF%E7%94%A8%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%A1%AE%E5%AE%9A%E7%94%A8%E6%88%B7%E7%8A%B6%E6%80%81.png)
不确定这是否是正确的 SE 网站。我认为这个问题不属于 SO,但如果你认为它也不属于这里,我很抱歉。
我一直在研究如何确定访问我网站的用户的位置,特别是所在州。我之前知道的一个选项是GeoIP 城市数据库,但这不是最具成本效益的解决方案,而且我很抠门,所以我在寻找一种更便宜的方法。我突然想到,我的州位于康卡斯特分配给我的公共主机名中:
(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 遵循这种模式。其他人可以通过检查他们的主机名是否包含他们的状态来确认吗?
答案1
GeoIP 还提供免费版本,但缺点很明显,比如不太准确。可在此处找到:
http://www.maxmind.com/app/geolite
如果您对网站的网络分析感兴趣。我建议您使用 piwik。这是一个免费的解决方案,内置了 GeoIP 插件。它会向您显示您的流量来自哪里,而且您拥有所有数据,而不像使用谷歌分析。对于不希望其他公司拥有其数据的大公司和小公司来说,这可能是一个问题。
就 MO 而言,我没有来自 ISP 的状态。