<?php
function get_ip_place(){
$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;
}
$ip=get_ip_place();
print_r($ip);
print_r($ip[3]);  //这个就是你需要的城市了
?>代码如上,是利用腾讯(http://fw.qq.com/ipaddress)来获取来访IP及所在地的,但是PHP文件放上服务器之后(http://www.sobuso.com/tb/test3.php)是获取的服务器的IP地址,而不是访客的,请问用什么方法可以显示访客,而不是服务器的地址?

解决方案 »

  1.   

    你用php程序访问,获取的ip自然是服务器的建议用IP库比对,来获取所需要的信息======搜一下,库+代码都有非要借助这个来获取也可以……<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
    <script>alert(IPData[0] + IPData[1] + IPData[2] + IPData[3]);</script>不过这样再提交到服务器就多此一举了,,,如果仅仅在页面显示出来,通过JS操作即可
      

  2.   

    JScript不懂哒,请问楼上怎么获得的IP或所在地呢
      

  3.   

    http://fw.qq.com/ipaddress
    获得的返回值是 数组
    var IPData = new Array("xxx.xxx.xxx.xxx","","xx省","xx市");所以在js里可以直接用IPData[0]显示IP地址,IPData[2]是省 IPData[3]是市
      

  4.   

    做个实例你看看<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
    <script type="text/javascript">
    window.onload=function (){
      document.getElementById('ip').innerHTML = '您的IP:'+IPData['0']+' ';
      document.getElementById('sheng').innerHTML = '来自:'+IPData['2']+' ';
      document.getElementById('shi').innerHTML = IPData['3'];
    }
    </script>
    <span id="ip"></span><span id="sheng"></span><span id="shi"></span>
      

  5.   

    <?php
    header("Content-Type: text/html; charset=utf-8");
    <script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
    <script type="text/javascript">
    window.onload=function (){
      document.getElementById('ip').innerHTML = '您的IP:'+IPData['0']+' ';
      document.getElementById('sheng').innerHTML = '来自:'+IPData['2']+' ';
      document.getElementById('shi').innerHTML = IPData['3'];
    }
    </script>
    <span id="ip"></span><span id="sheng"></span><span id="shi"></span>?>怎么放PHP里没反应呢
      

  6.   

    那段代码是javascript的,怎么能放在php里执行呢?直接在HTML 里啊。如果你要把这些数据传个服务器,最好用ajax。
      

  7.   

    PHP转换IP地址到真实地址
      

  8.   

    传值回去呗.就想life169说的,用ajax把值传到php页面去.然后你想怎么处理就怎么处理.
    另外我给你个测试了一下那个接口,它的编码是gbk18030的,需要页面还有文件的中文编码都统一才能正常显示.
      

  9.   

    可是别人访问的是这个php文件得嘛,不是那个html,我要用这个php文件来获取对方的所在地呀,再说ajax又不会得嘛,555
      

  10.   

    两个页面
    b.php<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
    <script type="text/javascript" src="jquery-1.2.3.pack.js"></script>
    <script type="text/javascript">
    $(function(){
      $.ajax({
      url: "a.php",
      typeType: "get",
      data: "ip="+IPData,
      success:function(msg){
        $("#out").html(msg);
      }
      });
    })
    </script>
    <div id="out"></div>
    后台数据处理a.php$ip = $_GET['ip'];
    echo $ip ;
    $arr = explode(',',$ip);
    $ip = $arr[0]; //ip地址
    $sheng = $arr[2];//省份
    $shi = $arr[3];//市