当前位置:首页 > 站长笔记 > php笔记 > 正文
运行天数:2994 天 最后更新:2020-7-1

离线查询IP所属区域信息,国内精确到城市.国外精确到省份.

用手机或者平板电脑扫描应用扫描本二维码,可以在手机浏览器继续浏览,也可以分享给你的联系人。

2020年06月17日 | 作者: 影子 | 分类: php笔记 | 点击量: 37

WDJA网站内容管理系统,免费开源可商用 点我获取,简单好用的PHP版CMS

离线查询IP所属区域信息,国内精确到城市.国外精确到省份.

IP数据库来自ipip.net IPv4 数据库试用版,最后更新时间:20190703 试用版数据不含运营商,国外只具体到国家试用版不能作为正式商业用途

完整实例代码网盘下载:  http://share.menglei.net/file/16922972-449182665

IP数据库官方下载网址: https://www.ipip.net/product/client.html

PHP版解析源码: https://github.com/ipipdotnet/ipdb-php

PHP使用例子(来自wdja网站内容管理系统: https://github.com/shadoweb/wdja)

如果有兴趣,也可以集成纯真IP库会更精确一些,网上有现成的资源,可以自行测试.

function mm_ip_map($ip,$type=0){
  //离线查询IP所属区域信息,国内精确到城市.国外精确到省份.
  ini_set('memory_limit', '1G');
  spl_autoload_register(function ($class)
                        {
                          $class = str_replace("\\","/",$class);
                          if (strpos($class, 'ipip/db') !== FALSE)
                          {
                            require __DIR__.'/ip/'.$class.'.php';
                          }
                        }, true, true);
  $city = new ipip\db\City(__DIR__.'/ip/ipipfree.ipdb');
  if(ii_isnull($ip)) $ip = ii_get_client_ip();
  $ip = ii_get_lrstr($ip, ',', 'leftr');
  $ip_array = $city->findMap($ip, 'CN');
  $country = $ip_array['country_name'];
  $region = $ip_array['region_name'];
  $city = $ip_array['city_name'];
  $int = '';
  switch ($type)
  {
    case 0:
      $int = '';
      break;
    case 1:
      $int = '-';
      break;
    case 2:
      $int = '|';
      break;
    case 3:
      $int = '/';
      break;
    case 4:
      $int = '·';
      break;
    default:
      $int = '-';
      break;
  }
  if(ii_isnull($country)) {
    $res = '';
  }elseif(ii_isnull($region)){
    $res = $country;
  }elseif(ii_isnull($city)){
    $res = $country .$int .$region;
  }else{
    $res = $country .$int .$region .$int .$city;
  }
  return $res;
}
function ii_get_client_ip()
{
  $tclient_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  if(ii_isnull($tclient_ip))
  {
    $tclient_ip = $_SERVER['HTTP_CLIENT_IP'];
    if(ii_isnull($tclient_ip)) $tclient_ip = $_SERVER['REMOTE_ADDR'];
  }
  $tclient_ip = ii_get_safecode($tclient_ip);
  return $tclient_ip;
}
function ii_isnull($strers)
{
  if (trim($strers) == '') return true;
  else return false;
}
function ii_get_safecode($strers)
{
  if (!ii_isnull($strers))
  {
    $tstrers = $strers;
    $tstrers = str_replace('\'', '', $tstrers);
    $tstrers = str_replace(';', '', $tstrers);
    $tstrers = str_replace('--', '', $tstrers);
    return $tstrers;
  }
}

 

 

 

 

 



手机扫码浏览本文


关键词:

本文网址:https://menglei.net/3950/,转载请以链接形式注明出处,谢谢合作!

*本站部分内容转载自其他媒体,版权归其所有。如若内容或图片侵犯您的权益,请与本站联系,我们将在24小时内处理完毕。

作者:清晨@深圳网站建设专家. | 清晨,领先的深圳网站优化品牌。

交流QQ号:925474725 邮件支持:shadoweb@qq.com