标点符(钱魏 Way)

腾讯IP地址API的使用

腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress

返回的是数据格式为:var IPData = new Array(“114.218.183.139″,””,”江苏省”,”苏州市”);

使用JS代码进行调取:

使用PHP解析的方法:(貌似不能用)

在开始讲解前需要需要先讲解一下PHP获取IP地址的方法:

上述代码中,需要做下解释的是以下三中获取IP地址的方法:

$_SERVER[‘HTTP_CLIENT_IP’]:代理端的IP(有可能存在,可伪造)

$_SERVER[‘HTTP_X_FORWARDED_FOR’]:使用代理前的原始IP,有可能存在,可伪造。如果客户端没有通过代理服务器来访问,那么用$_SERVER[“HTTP_X_FORWARDED_FOR”] 取到的值将是空的。

$_SERVER[‘REMOTE_ADDR’]:是你的客户端跟服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。不可被修改。

 由于$_SERVER[‘HTTP_X_FORWARDED_FOR’]和$_SERVER[‘REMOTE_ADDR’]都是存在HTTP的Header中,是可以用来伪造。

可以看到上面返回的还是服务器的IP地址,所以腾讯的IP地址查询的是$_SERVER[‘REMOTE_ADDR’],目前还没有办法对其修改。另:

新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js

新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42

搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson

搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8

搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip

码字很辛苦,转载请注明来自标点符《腾讯IP地址API的使用》

评论

  1. vibbow #1

    用PHP去获取的话抓到的不是服务器的IP地址么,这样做挺没意义的啊…

    回复
    2010-09-6
    • 标点符

      是的,目前还没有想到好的解决办法。

      回复
      2010-09-7
      • richard

        当用户浏览时,获取时就是用户的IP了.然后在到疼讯那里匹配,得到相应地区.怎么能说没意义呢?

        回复
        2011-08-30
  2. duway #2

    用ajax啊 笨

    回复
    2011-07-29