0 0

GeoIP定位查询10

我根据书Google API开发详解一模一样做了个例子但是发现有错误。书上例子一共以下几个文件geoip.inc geoipcity.inc geoipregionvars.php geoipseeker.jpg GeoLiteCity.dat index.html search.php  错误在于:index.html中的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>GeoIP 搜索者</title>
<!--导入Google Maps API库文件。注意将本代码中的API Key替换为前文申请到的API Key-->
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA1j86tnUDFv8OAtC8dZVtKRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSzmwrQ90SNUILzGRpsBiaa860gfQ" type="text/javascript"></script>
    <script type="text/javascript">
//<![CDATA[
    var map;  //全局GMap2对象
    var marker;  //用于标识查询IP的GMarker地标
    //初始化
    function load()
    {
      if (GBrowserIsCompatible())
      {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(39.92, 116.46), 2);
        //添加相应GControl()控件
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        //设定地图类型为混合地图
        map.setMapType(G_HYBRID_MAP);
        //查询当前访客信息
        getGeoInfo("");
      }
    }
   
    //响应查询栏的回车
    //因为FireFox中event不是全局的,所以必须从相应DOM对象里传回event
    //如下写法可兼容IE和Firefox
    function pressEnter(event, q)
    {
      //如果输入了回车,则执行查询
      if(event.keyCode==13 || event.keyCode==10)
      {
        getGeoInfo(q);
      }
    }
    //查询函数
    function getGeoInfo(q)
    {
     GDownloadUrl("search.php?q="+q, function(data)
            {
               eval(data);//这行错误!!!!!!!!!!!!!            });
    }
   
    //服务器端数据调用接口
    function loadGeoInfo(q, ip, country_code, country_code3, country, region, city, latitude, longitude)
    {
       //新的信息窗口中的内容
       var info = "<div align=\"left\" style=\"overflow:X; font-size:12px\">"
                + "<span style=\"font-size:14px\"><strong>" + q + "</strong></span><br />"
                + "<strong>IP:</strong> &nbsp;" + ip + "<br />"
                + "<strong>国家:</strong> &nbsp;" + country + "<br />"
                + "<strong>代码:</strong> &nbsp;" + country_code + "(" + country_code3 + ")" + "<br />"
                + "<strong>省份:</strong> &nbsp;" + city + "<br />"
                + "<strong>城市:</strong> &nbsp;" + region + "<br />"
                + "<strong>经度:</strong> &nbsp;" + longitude + "<br />"
                + "<strong>纬度:</strong> &nbsp;" + latitude + "<br />"
                + "</div>";
       //移动地图中心到新的位置
       var point = new GLatLng(latitude, longitude);
       map.panTo(point);
       //如果创建了marker地标,则关闭当前的信息窗口并移除地标
       if(marker)
       {
         map.closeInfoWindow();
         map.removeOverlay(marker);
       }
       //创建新的地标
       marker = new GMarker(point);
       map.addOverlay(marker);
       //显示信息窗口
       marker.openInfoWindowHtml(info);
    }
    //]]>
    </script>
    <style>
      td{
        text-align:center;
      }
    </style>
  </head>
  <body onload="load()" onunload="GUnload()">
    <table cellSpacing="0" cellPadding="0" width="600" border="0"  align="center">
      <tbody>
        <tr>
          <td>
            <img src="geoipseeker.jpg" title="geoipseeker" alt="geoipseeker" width="450" height="50" style="boder:0" />
          <td>
        </tr>
        <tr>
          <td height="25">
            <!--此处onsubmit为"return false;"可防止表单提交,因为本例中用AJAX查询,无需提交表单-->
            <form onsubmit="return false;">
              <!--分别为输入框和按钮都添加了事件监听。回车和点击按钮都可以进行查询-->
              <label for="q">在此输入IP或域名<input maxLength="50" size="25" name="q" id="q" onkeypress="pressEnter(event, this.value); "  />
              <input type="button" value="查找" id="search" onclick="getGeoInfo(q.value)" /></label>
            </form>
          </td>
        </tr>
        <tr>
          <td height="20" id="info"></td>
        </tr>
        <tr>
          <td>
          <div id="map" style="width:580px;height:350px"></div>
          </td>
        </tr>
        <tr>
          <td height="20" id="link">
            <a href="http://blog.gmap2.net">Power by <strong>GMap2.net</strong></a>
          </td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
应该所有的东西跟书上例子是一样的。。页面能正常打开 但是就不能使用这个IP定位功能,GeoLiteCity.dat路径是对的(放在同一个目录中的)
2012年3月06日 01:45

1个答案 按时间排序 按投票排序

0 0

eval(data);
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。
如果代码中存在解析错误,则 eval() 函数返回 false。

希望对lz有帮助

2012年3月08日 08:47

相关推荐

    ELK实现GeoIP定位全球访客.doc

    在本例中,我们将关注如何利用ELK栈中的Logstash和Kibana实现GeoIP定位,追踪并展示全球访客的地理位置。 首先,我们需要确保已经成功搭建了ELK环境。Logstash负责收集、解析和过滤日志数据,而Kibana则提供了一个...

    GEOIP2库,根据IP定位城市比较准,可以到村

    IP定位是通过IP地址获取设备所在位置的技术,而"ip定位城市"则表明GeoIP2不仅限于国家级别的粗略定位,它可以细化到城市层面,甚至更具体的位置。 在提供的压缩包子文件中,"GeoLite2-City_20201222.tar.gz"是...

    GeoLite2/ GeoIP 全球国家IP定位离线库 2020.08.04 最新版 (mmdb)

    在2020年8月4日发布的这个版本中,我们得到了最新的GeoLite2/GeoIP全球国家IP定位离线库,格式为mmdb。 GeoLite2是GeoIP数据库的一个免费版本,特别适合那些需要进行IP定位但预算有限的个人和企业。它提供了相当...

    通过GeoIP获取ip所属地,并将国家转换为中文

    这个脚本可能会调用`geoip.inc`中的函数,对输入的IP地址进行查询,然后返回GeoIP数据库中对应的国家编码或名称。这个功能对于网站统计、广告定向或者安全分析等场景非常有用。 `country_code_2_zhname.txt`文件则...

    最新GeoLite2/ GeoIP 全球国家IP定位离线库 2021.02.02最新版 (mmdb)

    GeoLite2和GeoIP是MaxMind公司开发的两种全球IP地址定位数据库,它们主要用于帮助用户获取访问者IP地址的相关信息,如国家、地区、城市、经纬度等地理信息。GeoLite2是GeoIP的免费版本,尽管功能相对较弱,但仍然能...

    GeoLite2/GeoIP 全球ip离线定位库ASN 2021.06.01最新版 【MMDB】

    GeoLite2和GeoIP是MaxMind公司开发的两个著名地理定位数据库,用于提供IP地址到地理位置的映射服务。这两个数据库分别提供了不同的功能,而GeoLite2-ASN_20210604文件则专门针对ASN(自治系统号)进行定位。 ASN是...

    最新GeoLite2/ GeoIP 全球国家IP定位离线库 2020.12.01最新版 (mmdb)

    GeoLite2和GeoIP是MaxMind公司开发的两种全球IP定位数据库,用于提供网络IP地址到地理位置的映射服务。GeoLite2是GeoIP的升级版本,提供了更准确的地理位置信息,包括国家、城市、经纬度等数据。这些数据库通常以...

    GeoLite2/ GeoIP 全球国家IP定位离线库 2020.06.30 最新版 (内含mmdb)

    GeoLite2和GeoIP是两种广泛使用的IP地址到地理位置转换的数据库,主要为网络服务提供者、网站管理员以及开发者提供全球IP地址的定位服务。这些数据库包含了大量的IP地址范围及其对应的国家、地区信息,以便在没有...

    GeoIP-1.6.12.tar.gz

    - `GeoIP2`:是 GeoIP 的升级版,支持更丰富的地理信息和更高效的查询。 - `libmaxminddb`:MaxMind 提供的 C 语言接口,用于直接读取其二进制数据库格式,性能优于 GeoIP。 总结,GeoIP-1.6.12.tar.gz 是一个...

    geoip-1.1.0.tgz

    《GeoIP库详解:深入解析geoip-1.1.0.tgz》 ...通过深入学习和理解`geoip-1.1.0.tgz`中的内容,开发者不仅可以掌握GeoIP的基本用法,还能对IP定位技术有更全面的认识,从而在实际项目中发挥出更大的作用。

    GeoLite2/GeoIP 全球国家的IP离线定位库 2022最新版数据库 【mmdb】

    GeoLite2和GeoIP是MaxMind公司开发的两个著名IP地址到地理位置转换工具,它们提供了全球范围内的IP定位服务。GeoLite2是GeoIP的免费版本,主要用于商业用途和个人研究,而GeoIP则包含了更全面、更精确的数据,通常...

    GeoIP_1.4.8.tar.gz 地理信息系统,资源包含geoIP_1.4.8的所有资源。

    这对于网站分析、广告定位、内容个性化、安全防护等领域都非常有用。 标签中提到的“nginx”和“tengine”都是流行的Web服务器软件。Nginx以其高性能和稳定性而闻名,广泛用于处理高并发的HTTP请求。Tengine是由...

    GeoLite2/GeoIP 全球ip定位离线库 2020.07.14最新版 【ASN格式】

    GeoLite2和GeoIP是MaxMind公司开发的两个著名IP定位数据库,用于提供全球范围内的IP地址到地理位置的映射。这些数据库可以帮助网络服务提供商、网站管理员和其他IT专业人士追踪和理解用户的位置信息,例如用于广告...

    PHP geoIP及例子下载

    7. **应用场景**:PHP GeoIP扩展常用于网站统计分析、个性化内容推荐、广告定位、内容过滤等场景。 通过以上介绍,我们可以看到PHP GeoIP扩展在获取用户位置信息方面的重要性,以及如何在PHP项目中有效地使用它。...

    最新GeoLite2/ GeoIP 全球国家IP定位离线库 2021.03.02最新版 (mmdb)

    GeoLite2和GeoIP是MaxMind公司开发的两种全球IP定位数据库,用于提供网络IP地址到地理位置的映射服务。GeoLite2是GeoIP的免费版本,为开发者和研究人员提供了便利,可以用来识别访问者的大致地理位置,如国家、地区...

    Laravel开发-geoip Laravel GeoIP 服务集成包

    如果启用缓存,`laravel-geoip` 将自动处理查询结果的缓存,提高性能。当然,你也可以自定义缓存时间或根据需要手动清除缓存。 总结一下,`laravel-geoip` 服务包为 Laravel 提供了简单易用的接口,用于获取和处理 ...

    GeoIP最新数据库(2022-04-19)

    GeoIP数据库提供的任何位置不应用于识别特定地址或家庭,使用精度半径作为IP地址返回的纬度和经度坐标的地理定位精度指示,IP地址的实际位置可能在这个半径和经纬度坐标所定义的区域内。 GeoIP库可以根据IP地址(支持...

    最新GeoLite2/ GeoIP 全球国家IP定位离线库 2021.08.10最新版 (mmdb)

    GeoLite2和GeoIP是MaxMind公司开发的两种全球IP定位数据库,用于提供网络IP地址到地理位置的映射服务。GeoLite2是GeoIP的免费版本,为用户提供了一个经济实惠的方式来获取全球IP地址的地理信息。2021.08.10更新的这...

    最新GeoLite2/ GeoIP 全球国家IP定位离线库 2020.09.08最新版 (mmdb)

    官网下载,最新GeoLite2/ GeoIP 全球国家IP定位离线库 2020.09.08 最新版 (mmdb)

    GeoLite2/ GeoIP 全球国家IP定位离线库 2020.08.18 最新版 (mmdb)

    官网下载,最新GeoLite2/ GeoIP 全球国家IP定位离线库 2020.08.18 最新版 (mmdb)

Global site tag (gtag.js) - Google Analytics