仅向地理位置中的用户显示内容

时间:2010-02-04 15:04:40

标签: php

我想仅在特定位置(旧金山)向用户显示侧边栏广告。我会嗅他们的IP,然后如果它适合San Fran IP区域创建一个If / Else来显示。如果IP!= San Fran IP位置则不显示?

或者这些天我不使用IP来跟踪他们的位置?

3 个答案:

答案 0 :(得分:2)

唯一可行的选择是使用用户的IP地址。这并不总是正确的(例如对于代理或VPN用户来说是错误的),但是可行的。为此,您需要一个将IP映射到国家/地区(地理位置数据库)的数据库。

有许多可用的地理定位服务,但大多数都不是免费的。有关详细信息,请参阅此答案:https://stackoverflow.com/questions/283016/know-a-good-ip-address-geolocation-service

答案 1 :(得分:0)

是的,你会使用他们的IP地址。您需要下载以下IP位置数据库之一并将访问者的IP地址与其匹配:

http://ipinfodb.com/ip_database.php

那会给你他们的位置。

答案 2 :(得分:0)

答案是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/

尝试一下