我想显示一个侧栏广告只在一个特定的位置(旧金山)的用户。我会嗅探他们的IP,然后如果它适合旧金山的IP区域,创建一个If/Else来显示。如果IP != San Fran IP位置,那么不显示吗?
或者这些天我不使用IP来跟踪他们的位置?
发布于 2010-02-04 23:19:32
答案是whois数据库。在Linux上使用whois命令,例如:
$ host www.stackoverflow.com
www.stackoverflow.com is an alias for stackoverflow.com.
stackoverflow.com has address 69.59.196.211
stackoverflow.com mail is handled by 20 alt1.aspmx.l.google.com.
stackoverflow.com mail is handled by 30 alt2.aspmx.l.google.com.
stackoverflow.com mail is handled by 40 aspmx2.googlemail.com.
stackoverflow.com mail is handled by 50 aspmx3.googlemail.com.
stackoverflow.com mail is handled by 10 aspmx.l.google.com.
$ whois 69.59.196.211
OrgName: Peak Inc.
OrgID: PEAKIN-3
Address: 1600 SW Western Suite #180
City: Corvallis
StateProv: OR
PostalCode: 97333
Country: US
...使用第一个“县”或“国家”字段。您将获得包含该IP的网络块的国家/地区。在http://whois.domaintools.com/上试试吧
发布于 2010-02-04 23:11:41
唯一现实的选择是使用用户的IP地址。这并不总是正确的(将是错误的,例如对于代理或VPN用户),但可行。为此,您需要一个将IP映射到国家/地区的数据库(地理位置数据库)。
有许多可用的地理定位服务,但大多数都不是免费的。有关详细信息,请参阅此答案:https://stackoverflow.com/questions/283016/know-a-good-ip-address-geolocation-service。
发布于 2010-02-04 23:14:53
https://stackoverflow.com/questions/2200652
复制相似问题