读之前你说这个是重复的,不是这样的。(只要我能看见)

我想要得到的县码在php从客户。

是的,我知道你可以做到这一使用外部网站或与"geoip_record_by_name"但是我不想要依赖于外部网站,和我不可以安装"pear"php作用碎片酷logo主持。

我想我只能做这样的事情:

$output = shell_exec('whois '.$ip.' -H | grep country | awk \'{print $2}\'');
echo "<pre>$output</pre>";

但酷logo似乎有一个旧的版本whois(4.7.5),所以我获得这种错误分配的Ip地址:

Unknown AS number or IP network. Please upgrade this program.

所以除非有人知道如何获得一个二进制的一个新版本的whois到酷logo im卡住。

或是有另一种方式我可以得到的国家代码的客户是谁载入页面?

有帮助吗?

解决方案

域名注册只是针对域名注册服务的客户端,所以在技术上你仍然依赖外部网站。对于失败的查询,你可以尝试回落到其他网站查询,如hostip.info,谁碰巧有一个体面的API,似乎友好:

http://api.hostip.info/country.php?ip=4.2.2.2

返回

US

好运,

- JED

编辑:@Mint这里是链接到上hostip.info的API:的http:// WWW。 hostip.info/use.html

其他提示

的MaxMind提供一个免费 PHP GeoIP的国家查找类(也有一个自由的国家+城市查找一个)。

你想要的位是什么是根据“纯PHP模块”中提到。这并不需要你安装任何东西,或者是依赖于他们,也不需要安装任何特殊的PHP模块。只要保存GeoIP的数据文件的地方,然后用他们提供的类与它进行交互。

你能不能只安装域名注册的副本到你的主目录,并通过完整路径到了shell_exec?这样,你不绑定到自己的升级计划。

一种选择,有些极端的解决你的问题将是:

  1. 下载CSV格式版本的我们的 国家数据库
  2. 带出的信息你不需要从CSV有一个脚本,和...
  3. ...产生一个标准的PHP文件,该文件包含一个数据结构中含有的IP地址作为关键和国家代码的价值。
  4. 包括所产生的文件在你平常的项目文件和现在你有一个完全的内部IP=>国家代码查表。

其缺点是,定期,将需要再生PHP文件的最新版本的数据库。此外,这是一个非常讨厌的方式这样做在一般和业绩可能不是最好的:)

考虑 ipcountryphp (我的地盘,我的代码,我的荣幸) 因为它提供了一个本地互联网的生自由更新的数据库。它的快速和完全独立的,可插入任何PHP5.3,SQLite3和超越。很快寻求和有效的处罚。

足够无耻的自我促进,让我们严重:

依靠查询远程服务在实现实时间 获得访问的国家 可以成为一个主要的瓶颈 对你网站的功能性取决于响应的速度查询服务器。作为一项规则的拇指,你应该永远不会查询外部服务对于实时网站的功能 (像页载).使用Api在的背景是巨大的,但是当你需要查询的国家,每个游客前呈现页面,你打开自己的世界的痛苦。 并记住你不是唯一一个滥用的免费服务:)

所以 查询的第3-缔约方服务,留在该背景的同时,只有当地的功能依赖于没有第3-缔约方进入该层有用户进行互动。只是我略性能偏执采取这样的:)

PS: 上述脚本我写的有IPv6支持。

下面是我只是使用的脚本的位点。唯一的问题是,你可能会时不时地需要自己的IP再生......为什么每个人都告诉你使用外部API,这可能是痛苦和tahts。但对我来说这wasnt解决方案,我拖着像50级的IP一次,这意味着我可能会得到禁止。所以,解决办法是用我自己的剧本或者做保存到数据库,但我再次从外部网站拉动图像。反正这里是我发现脚本的网站:

http://coding-talk.com/f29/country-flag -script-8882 /

这里也是其中之一。只是改变了IP的变量: 点击 http://api.codehelper.io/ips/?callback= codehelper_ip_callback&IP = 143.3.87.193

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top