Heim > php教程 > php手册 > Hauptteil

关于腾讯ip接口一个流传很广的错误用法

WBOY
Freigeben: 2016-06-06 19:44:44
Original
1304 Leute haben es durchsucht

摘要: 这是一个流传很广的使用方法,之前我也是深信不疑,最近在折腾自己的小网站PHP10086的时候,发现这个问题, 希望各位引以为戒 正文 腾讯ip接口由于准确度比较高(支持到县一级),使用上也比较广泛。 使用腾讯api接口有两种方法: js版: script langu

摘要:

这是一个流传很广的使用方法,之前我也是深信不疑,最近在折腾自己的小网站PHP10086的时候,发现这个问题,

希望各位引以为戒

正文

腾讯ip接口由于准确度比较高(支持到县一级),使用上也比较广泛。

使用腾讯api接口有两种方法:

js版:

<script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
<script>document.write("你的IP是:"&#43;IPData[0]&#43;",来自:"&#43;IPData[2]);</script>
Nach dem Login kopieren
对应的引申出服务端版,
Nach dem Login kopieren
PHP版的调用方法:
Nach dem Login kopieren
//方法2 直接获得客户端ip地址
function getIpPlace(){
 $ip=file_get_contents("http://fw.qq.com/ipaddress");
 $ip=str_replace('"',' ',$ip);
 $ip2=explode("(",$ip);
 $a=substr($ip2[1],0,-2);
 $b=explode(",",$a);
 return $b;
}
Nach dem Login kopieren
流传很广的说法都是说这两种方法可以获得客户端IP(当然是指外网ip)
Nach dem Login kopieren
我这个本地测试这两个方法都可以获取到外网IP,解析我的ip信息:浙江杭州西湖区 电信
Nach dem Login kopieren
但是当我把这个两个方法上传到我的个人网站www.php10086.com的时候发现,
Nach dem Login kopieren
<img  src="/inc/test.jsp?url=http%3A%2F%2Fwww.php10086.com%2Fwp-content%2Fuploads%2F2011%2F12%2FQQ20111201131827_thumb.png&refer=http%3A%2F%2Fblog.csdn.net%2Fphp10086%2Farticle%2Fdetails%2F7042014" alt="关于腾讯ip接口一个流传很广的错误用法" > 
Nach dem Login kopieren
解释一下:第一个IP是我个人网站服务器iP
Nach dem Login kopieren
第二个是我使用js版的ip接口获取的值,
Nach dem Login kopieren
对比就发现这两个方法获取的ip不一样,js版的获取的是我外网ip
Nach dem Login kopieren
PHP版获取的是我服务器自身的ip
Nach dem Login kopieren
 
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

原因解释:

<img  src="/inc/test.jsp?url=http%3A%2F%2Fwww.php10086.com%2Fwp-content%2Fuploads%2F2011%2F12%2FMicrosoftOfficeVisio_thumb.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Fphp10086%2Farticle%2Fdetails%2F7042014" alt="关于腾讯ip接口一个流传很广的错误用法" > 
Nach dem Login kopieren

js版流程(js依赖于浏览器解析)

用户---浏览器---本地host--外网ip--DNS解析--腾讯ip接口服务器
Nach dem Login kopieren
返回:外网ip(完全正确)
Nach dem Login kopieren
 
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

PHP版流程:

用户---浏览器---本地host--外网ip--Dns解析-PHP10086服务器 ---腾讯ip接口服务器
Nach dem Login kopieren
返回:PHP10086服务器的IP
Nach dem Login kopieren
 
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
而本地测试都可以返回的原因是:
Nach dem Login kopieren
本地作为服务器,最近访问腾讯ip接口服务器的ip还是外网IP,所以两个方法都可以返回外网IP
Nach dem Login kopieren
 
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
结论:PHP版腾讯ip接口获取的IP是最近访问腾讯ip接口服务器的IP
Nach dem Login kopieren
为了证明这个,我又测试新浪的ip接口,测试结果和腾讯ip接口一样,证明结论完全正确.
Nach dem Login kopieren
附带一个DEMO:
Nach dem Login kopieren

demo地址:demo演示

服务器比较差,各位温柔点

 
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
从这个接口对我得出的结论:
Nach dem Login kopieren
  1. 本地测试环境和真实生产环境还是有区别的
    Nach dem Login kopieren
  2. 即使网上流传很广的方法也未必可靠,正如邓爷爷说的实践出真知,作为程序员要又打破权威,质疑权威的胆识和行动
    Nach dem Login kopieren
<p>腾讯IP接口,js ip接口,PHP ip</p>
Nach dem Login kopieren
<span><img  src="/inc/test.jsp?url=http%3A%2F%2Fi.creativecommons.org%2Fl%2Fby-nc-nd%2F3.0%2F88x31.png&refer=http%3A%2F%2Fblog.csdn.net%2Fphp10086%2Farticle%2Fdetails%2F7042014" alt="关于腾讯ip接口一个流传很广的错误用法" ><span>本文基于署名-非商业性使用 3.0PHP10086博客网(PHP淮北):http://www.php10086.com,也可以邮件与我联系。据说每个程序员都应该挖一口自己的井,希望各位支持我的"井":PHP10086博客网(PHP淮北):http://www.php10086.com。</span></span>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!