zoukankan      html  css  js  c++  java
  • geoip+php演示样例:通过ip,获取国家名称和代码

    GeoIP + PHP的使用


    方法一:


    下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php


    http://sjolzy.cn/php/GeoIP/bak/geoip.inc


    php使用代码


    <?php
    include("geoip.inc.php");
    $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
    $country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    $country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);
    
    $jsonEcho = array();
    $jsonEcho["error"] = 0;
    $jsonEcho["country_code"] = $country_code;
    $jsonEcho["country_name"] = $country_name;
    
    
    function jsonp($object, $callback = 'callback') {
    		if (!empty($_GET[$callback])) {
    			header('Content-Type: application/x-javascript');
    		} else {
    						header('Content-Type: application/json');
    		}
    		return $_GET[$callback].'('.json_encode($object).')';
    }
    
    
    echo jsonp($jsonEcho);
    
    ?>

    注:在本地測试的话因 为$_SERVER['REMOTE_ADDR']和$_SERVER['REMOTE_ADDR']可能是127.0.0.1,所 以输出的内容为空。能够自己带入IP測试


    方法二:

    把 GeoIP 安装成 PHP 扩展 
    yum install GeoIP GeoIP-data GeoIP-devel


    下载 GeoIP 数据库 
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
    gzip -d GeoLiteCity.dat.gz
    mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.dat


    下载 GeoIP 的 PECL 扩展 
    下载地址 http://pecl.php.net/package/geoip 
    wget -c http://pecl.php.net/get/geoip-1.0.7.tgz
    tar -zxvf geoip-1.0.7.tgz


    安 装 GeoIP 的 PECL 扩展 
    cd geoip-1.0.7
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-geoip
    make
    make install


    在 php.ini 里加上 
    extension=geoip.so


    接着重新启动一下 php 即可了(nginx+php的情况,而apache+php就不用重新启动了)
    如今。你能够使用 php 手冊里的 GeoIP 部份函数了
    http://cn.php.net/manual/en/book.geoip.php


    參考:http://blog.csdn.net/prince2270/article/details/4592753




  • 相关阅读:
    mysql慢查询日志
    VS中MFC连接MySQL的方法【转】
    localtime函数时区问题
    gethostbyname()函数【转】
    剪切板操作
    C/C++字符串查找函数 【转】
    vs2013出现IntelliSense错误,但是错误又不影响使用的消除办法
    c语言基础精讲加实例(个人觉得复习基础挺好的,)
    vs2013下qt工程调用自建的lib库函数教程
    取出16进制位对应位数的数字是0还是1(C语言)
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6733313.html
Copyright © 2011-2022 走看看