简述:在Linux命令行下查询IP归属地。

对Ubuntu/Debian系统,使用APT命令进行安装:

  1. $ sudo apt-get install geoip-bin

该包由MaxMind提供,它同时提供了国家、城市和自治系统号(ASN)查询。

  1. 自治系统号(ASN)是什么?
  2.  
  3. ASN - Autonomous System Number:自治系统号。
  4. AS - Autonomous System:自治系统。
  5.  
  6. 自治系统是指在互联网中,有权自主决定本地网络系统采取何种路由协议的小型单位。
  7.  
  8. 这里所称的本地网络系统可以是一个单一局域网,也可以是多个局域网集群,例如一家企业、一所大学。一个自治系统会分配一个全局的唯一的识别号,这个号码称之为自治系统号。
  9.  
  10. 自治系统内部使用内部网关协议进行路由信息的通信,自治系统之间使用边界网关协议进行路由信息的通信。
  11.  
  12. 一个自治系统也可以视为一个或多个网络运营商来运行一个或多个网络协议前缀的网络连接组合,这些运营商往往都具有单独的明确的路由策略。

这个包完成安装后,会自动安装两个免费的国家IP数据库,默认安装地址为:/usr/share/GeoIP/GeoIP.dat, /usr/share/GeoIP/GeoIPv6.dat,这个数据库在安装时不一定是最新的,你需要自己手动更新,大概每月更新一次。下载地址为:GeoLite Free Downloadable Databases,提供的下载有国家、城市、ASN三类数据库,可以全部使用以下方法下载到 /usr/share/GeoIP 目录下。

  1. $ cd /usr/share/GeoIP
  2. $ sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz -O GeoIP.dat.gz
  3. $ sudo gzip -d GeoIP.dat.gz

查询IP所属国家(第三行 GeoIP ASNum需要下载了GeoIPASNum.dat):

  1. $ geoiplookup 8.8.8.8
  2. GeoIP Country Edition: US, United States
  3. GeoIP ASNum Edition: AS15169 Google Inc.

查询IP所属城市(需要下载GeoLiteCity.dat):

  1. $ geoiplookup 8.8.8.8 -f GeoLiteCity.dat
  2. GeoIP City Edition, Rev : US, N/A, N/A, N/A, 38.000000, -97.000000, , 0
  3.  
  4. $ geoiplookup 163.177.65.160 -f GeoLiteCity.dat
  5. GeoIP City Edition, Rev : CN, , Guangzhou, N/A, 23.116699, 113.250000, , 0
  6.  
  7. $ geoiplookup 125.39.240.113 -f GeoLiteCity.dat
  8. GeoIP City Edition, Rev : CN, , Tianjin, N/A, 39.142200, 117.176697, ,  

对应字段:

  1. GeoIP City Edition, Rev : country, region, city, postalCode, latitude, longitude, metroCode, areaCode
  2.  
  3. GeoIP City Edition, Rev : CN, , Tianjin, N/A, 39.142200, 117.176697, ,

查询当前数据库版本:

  1. $ geoiplookup 125.39.240.113 -v
  2. GeoIP Country Edition: GEO-106FREE Build Copyright (c) MaxMind Inc All Rights Reserved
  3. GeoIP ASNum Edition: GEO- Build Copyright (c) MaxMind Inc All Rights Reserved
  4. GeoIP Country V6 Edition: GEO-106FREE Build Copyright (c) MaxMind Inc All Rights Reserved
  5. GeoIP Large Country Edition: GEO-106FREE Build Copyright (c) MaxMind Inc All Rights Reserved
  6. GeoIP Large Country V6 Edition: GEO-106FREE Build Copyright (c) MaxMind Inc All Rights Reserved
  7. GeoIP ASNum V6 Edition: GEO- Build Copyright (c) MaxMind Inc All Rights Reserved

查看更多信息:

  1. $ geoiplookup 125.39.240.113 -i
  2. GeoIP Country Edition: CN, China
  3. ipaddr: 125.39.240.113
  4. range_by_ip: 125.31.192.0 - 125.47.255.255
  5. network: 125.32.0.0 - 125.47.255.255 ::
  6. ipnum:
  7. range_by_num: -
  8. network num: - ::
  9. GeoIP ASNum Edition: AS4837 CNCGROUP China169 Backbone
  10. ipaddr: 125.39.240.113
  11. range_by_ip: 125.35.128.0 - 125.46.111.255
  12. network: 125.36.0.0 - 125.39.255.255 ::
  13. ipnum:
  14. range_by_num: -
  15. network num: - ::

MaxMind定期测试IP归属地查询准确性,其官网提供了针对不同国家的测试结果

  1. Country Correctly resolved within forty kilometers Incorrectly resolved City is unknown
  2. China % % %

查看信息来源

[Ubuntu] geoip-bin 程序包 - 查询 IP 归属地的更多相关文章

  1. Linux shell查询ip归属地

    起因 有的时候写脚本需要能够在脚本中获取到ip的归属地,比如分析登录日志列出攻击者的相关信息等. 可以使用whois来查询ip的详细信息,但是whois并不是每台机器预装的,而且我想看中文的结果,所以 ...

  2. 任何快速查询IP归属地

    最近公司项目需要做一个IP归属地查询的功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的IP归属地API非常符合我的开发需求.   ...

  3. 利用纯真ip地址库 查询 ip所属地

    1. 首先下周数据源,选择是纯真数据库:http://www.cz88.net/ 2. 安装后,打开软件,将数据导出为txt格式. 3. 处理数据,参照网上的文章(http://www.jb51.ne ...

  4. python 通过线上API查询ip归属地

    API为国外API,频率限制1分钟45个ip 脚本如下 1 #!/usr/bin/env python3 2 #-*-coding:utf-8-*- 3 4 import requests,re,js ...

  5. jquery 查询IP归属地

    <script src="http://c.csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type=&q ...

  6. python 利用cip.cc查询IP归属地

    def ipinfocip(ip): # 获得 输入框中的信息 url = "http://www.cip.cc/%s" % ip # 模拟浏览器请求网络 headers={'Us ...

  7. python 利用淘宝IP库 查询IP归属地

    #coding:utf-8 from django.test import TestCase import json import urllib ip = "114.114.114.114& ...

  8. 根据ip查询ip归属地

    http://www.oschina.net/code/snippet_944819_33978 http://www.jb51.net/article/54287.htm public String ...

  9. 在64位Ubuntu系统上安装32位程序包

    在64位Ubuntu系统上安装32位的程序包 $sudo apt-get install package_name:i386 例如: $sudo apt-get install openjdk-7-j ...

随机推荐

  1. qt configure参数配置介绍

    ======================================全文是按照./configure -help来翻译的==================================== ...

  2. svn解决不能clean的方法

    http://blog.csdn.net/victory08/article/details/42100325 svn执行clean up后出现提示:svn cleanup failed–previo ...

  3. VIM中一些按键的作用:

    表示范围的命令: l: 表示一个字符,可以于操作符组合使用: aw :表示一个单词: 不会count 空格:  前面可以加数字的: iw:  选中一些单词, 会包括空格: 前面可以加数字: ap: 表 ...

  4. 第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求

    第三百二十七节,web爬虫讲解2—urllib库爬虫 利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码read()读出html源码内容decode(& ...

  5. Java如何显示一年的周数?

    在Java中,如何查找一年中或一个月中的第几个星期? 以下示例显示年份和月份的第几周. package com.yiibai; import java.util.*; public class Dis ...

  6. Dubbo推刊

    dubbo源码阅读:rpc请求处理流程(1) 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析) 13. Dubbo原理解析-注册中心之Zookeeper协议注册中心 dubbo作为消 ...

  7. 【设计和开发一套简单自己主动化UI框架】

    !有兴趣的朋友请直接移步Github,本帖子已经不做更新,框架的详细的实现已经做了优化和代码整理,本文仅仅介绍了详细的设计思路! 目标:编写一个简单通用UI框架用于管理页面和完毕导航跳转 终于的实现效 ...

  8. SpringBoot学习:使用spring-boot-devtools进行热部署

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 pom.xml添加依赖: <!--支持热启动jar包--> <depe ...

  9. 转载:帮你提升 Python 的 27 种编程语言

    帮你提升 Python 的 27 种编程语言: 出处:http://www.oschina.net/translate/languages-to-improve-your-python

  10. 机器学习——利用SVD简化数据

    奇异值分解(Singular Value Decompositon,SVD),可以实现用小得多的数据集来表示原始数据集. 优点:简化数据,取出噪声,提高算法的结果 缺点:数据的转换可能难以理解 适用数 ...