黑客教你定位城市  徐松亮Python教学

访客4年前黑客资讯1056

版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持! *** :5387603

推荐点击此链接:欢迎进入徐松亮博客一站式导航搜索(随时更新)

目录

一,概念

场景

场景解决

具体方案

数据到哪去查呢?

本文用什么变成语言?

本文用GeoLiteCity的在线查询还是离线查询?

离线数据源的定期更新

二,准备工作

python环境

安装MaxMind公司的开源数据库GeoLiteCity:

三,代码讲解

四,源码

五,运行效果

六,调试记录

一,概念

  • 场景

    • 如果遇到服务器被攻击,恶意链接,我们怎样调查呢?
    • 反过来如果我们是黑客,怎么躲避调查呢?
  • 场景解决

    • 目前比较常见的 *** 就是根据IP地址来定位服务器的位置.
  • 具体方案

    • 本教程就为大家介绍怎样根据IP地址来定位攻击服务器的位置.
  • 数据到哪去查呢?

    • 这里我们用MaxMind的GeoLiteCity数据库,为什么选它呢?
      • 因为它有免费开源的版本来让我们不用花钱来做这个事.
      • 如果要更专业更精准的定位服务,MaxMind还有一些收费的商业版可供购买.
    • GeoLiteCity可以在线查询,也可以把离线数据下载到本机查询,很不错.
    • 要使用GeoLiteCity的数据,用什么编程语言呢?
      • 它支持好多语言,官方C#/C/JAVA/Perl/PHP/Python/等,还有第三方支持更多其他语言,具体见官方文档。
  • 本文用什么变成语言?

    • 上面也说到数据库支持很多编程语言,在此,我们用python
  • 本文用GeoLiteCity的在线查询还是离线查询?

    • 在线方式优缺点
      • 优点:不用定期更新数据包
      • 缺点:查询总要依靠MaxMind服务器,万一 *** 数据链路或服务器出问题则失效。
    • 离线方式的优缺点
      • 优点:数据库在本地,就是让人感觉到放心。
      • 缺点:需要定期更新数据包
    • 本文用离线查询方式。在线方式应用更简单,使用看官方技术文档即可(下一章节有网址)
  • 离线数据源的定期更新

    • GeoLiteCity如果在linux环境下,提供自动更新数据库的脚本,但是windows下没有,只能手动周期更新下载。但我认为是可以自己写一个脚本的,无非就是从网站上下载保存到指令路径让系统周期性运行而已。

二,准备工作

  • python环境

    • 确保电脑安装了python环境,并且pip指令可用
    • 博主电脑:
      • 操作系统:win10-64bit
      • python:python3.7
      • 编辑环境:VSCode
        • 不会建立请看本博主原创文档:
          • 徐松亮软件应用教学-基于Visual Studio Code的python语言开发环境搭建
  • 安装MaxMind公司的开源数据库GeoLiteCity:

    • 网址:
      • 网址:http://www.maxmind.com/app/geolitecity
      • 开发:https://dev.maxmind.com/geoip/geoip2/downloadable/
      • 开发:https://pypi.org/project/geoip2/
    • 安装
      • windows的cmd环境下如下指令
        • pip install geoip2
      • 等待安装完成

    • 下载数据包

      • 下载网址:https://dev.maxmind.com/zh-hans/geoip/geoip2/geolite2/

三,代码讲解

  • 本文主要介绍City库的应用,其他应用请自行看手册.

四,源码

#!D:/Program Files/Python37/python
import geoip2.database

# This creates a Reader object. You should use the same object
# across multiple requests as creation of it is expensive.
reader = geoip2.database.Reader(
    '../../../xsl_use_lib/geolite2/GeoLite2-City/GeoLite2-City.mmdb')

def ip_print_AddrInfo(ip):
    # Replace "city" with pthe method corresponding to the database
    # that you are using, e.g., "country".
    #-----------------------------------------------
    # 载入指定IP相关数据
    response = reader.city(ip)
    #读取国家代码
    Country_IsoCode = response.country.iso_code
    #读取国家名称
    Country_Name = response.country.name
    #读取国家名称(中文显示)
    Country_NameCN = response.country.names['zh-CN']
    #读取州(国外)/省(国内)名称
    Country_SpecificName = response.subdivisions.most_specific.name
    #读取州(国外)/省(国内)代码
    Country_SpecificIsoCode = response.subdivisions.most_specific.iso_code
    #读取城市名称
    City_Name = response.city.name
    #读取邮政编码
    City_PostalCode = response.postal.code
    #获取纬度
    Location_Latitude = response.location.latitude
    #获取经度
    Location_Longitude = response.location.longitude
    #------------------------------------------------打印
    print('[*] Target: ' + ip + ' GeoLite2-Located ')
    print('  [+] Country_IsoCode        : ' + Country_IsoCode)
    print('  [+] Country_Name           : ' + Country_Name)
    print('  [+] Country_NameCN         : ' + Country_NameCN)
    print('  [+] Country_SpecificName   : ' + Country_SpecificName)
    print('  [+] Country_SpecificIsoCode: ' + Country_SpecificIsoCode)
    print('  [+] City_Name              : ' + City_Name)
    if City_PostalCode != None:
        print('  [+] City_PostalCode        : ' + City_PostalCode)
    print('  [+] Location_Latitude      : ' + str(Location_Latitude))
    print('  [+] Location_Longitude     : ' + str(Location_Longitude))

ip = '119.108.116.209'
ip_print_AddrInfo(ip)

五,运行效果

六,调试记录

  • 对于一些经过各种 *** 路由设备转换过的IP未必好使。
  • 数据库视乎缺少中国的相关的邮政编码信息,导致运行出错,尝试美国IP没有此问题,所以在源码中加了条件容错。
  • 遇到如下问题:在python官方IDE运行好使,但是在VSCode环境下运行找不到geoip2,也就是运行import geoip2出错,猜想一定是VSCode哪里没用明白。
    • 问题原因:
      • 电脑中存在多个版本的python,两个环境的各种环境变量设置不一样
      • sys.path打印出来的内容都不一样(怎么能一样,后续再研究吧)
    • 解决方案:
      • 删除了不用的python版本
      • 在VSVode中启动了用户级的setting.json设置,把真正的python相关路径加入设置,才解决问题
    • 并已经把更新记录到了本人的VSCode简历python开发环境文档中
      • 徐松亮软件应用教学-基于Visual Studio Code的python语言开发环境搭建

相关文章

大理院子环境图片(大理的小院子哪个区好)

大理院子环境图片(大理的小院子哪个区好)

记得早先少年时 大家诚诚恳恳 说一句 是一句 清早上火车站 长街黑暗无行人 卖豆浆的小店冒着热气 从前的日色变得慢 车,马,邮件都慢 一生只够爱一个人 从前的锁也好看 钥匙精美有样...

香港中文大学学校环境怎么样(香港中文大学哪

香港中文大学学校环境怎么样(香港中文大学哪

香港中文大学简介 香港中文大学(The Chinese University of Hong Kong),简称港中大(CUHK),书 院联邦制大学建制,为东亚AACSB认证成员、亚太高校书院联盟成员...

澳大利亚维多利亚大学学习环境怎么样(澳大利

澳大利亚维多利亚大学学习环境怎么样(澳大利

维多利亚大学学习条件 维多利亚大学的校园环境:据立思辰留学360介绍,维多利亚大学位于澳大利亚维多利亚省的墨尔本市。学校建立于1915年,是澳大利亚的一所知名院校。学校的氛围极具现代感,在墨尔本市中...

怎么找正规的私家侦探公司?一般私人侦探收费

冬天来了,天气渐渐变冷。青藏高原地区由于基础设置差,条件落后,气温已低于-10℃,特别对孩子们来说,十分渴望一个温暖、舒适的学习环境。 热心公益的年轻家电品牌Leader意识到这点,联合咕咚发起...

南医大友谊医院是公立医院还是私立医院(院内环境和院内设施)

南医大友谊医院是公立医院还是私立医院(院内环境和院内设施)

10月15日上午,江苏省援伊前方指挥部党委副书记、伊犁州纪委副书记彭忠,江苏省援伊前方指挥部干部人才组副组长、伊犁州卫健委党组成员顾寿永,伊犁州友谊医院院长崔维江带队来校座谈,校党委书记王长青,校纪委...

怎样偷登别人的微信号

12月12日,中国生产力促进中心协会主办的抗疫表彰“生产力之夜”活动在北京举行。高能环境因在疫情期间的特殊贡献,被授予“抗击新冠肺炎疫情突出贡献奖”。 高能环境品牌总监...