我想仅在特定位置(旧金山)向用户显示侧边栏广告。我会嗅探他们的IP,然后如果它适合在San Fran IP地区创建一个If/Else来展示。如果IP!= San Fran IP位置则不显示?仅向位于地理位置的用户显示内容
或者我现在不用IP来跟踪他们的位置?
我想仅在特定位置(旧金山)向用户显示侧边栏广告。我会嗅探他们的IP,然后如果它适合在San Fran IP地区创建一个If/Else来展示。如果IP!= San Fran IP位置则不显示?仅向位于地理位置的用户显示内容
或者我现在不用IP来跟踪他们的位置?
答案是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/
唯一现实的选择是使用用户的IP地址。这并不总是正确的(例如对于代理或VPN用户会出错),但是可行。为此,您需要一个将IP映射到国家(地理位置数据库)的数据库。
有许多地理定位服务可用,但大多不是免费的。看到这个答案:https://stackoverflow.com/questions/283016/know-a-good-ip-address-geolocation-service了解详情。
使用exec()或popen()来运行命令。 http://hu.php.net/manual/en/function.exec.php http://hu.php.net/manual/en/function.popen.php – Notinlist
我可以将这个转换为一个php命令来使用在网站上? – HollerTrain
是的,但你应该实现一些数据缓存。如果使用popen()运行命令,则可以将命令的输出作为输入文件处理。 – Notinlist