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

访客4年前黑客资讯1062

版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持! *** :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语言开发环境搭建

相关文章

php环境套件大全:最值得推荐使用的PHP套件

php环境套件大全:最值得推荐使用的PHP套件

平常用的虚拟主机的朋友可能很少会关注到Web服务器的搭建,但是对于那些购买了Windows、Linux VPS或服务器的朋友来说,如何在VPS服务器上快速搭建一个Web服务器就是最重要的问题了。...

湿疹怎么引起的?环境因素最重要

湿疹怎么引起的?环境因素最重要

湿疹虽然不是什么大病,但是如果一旦患了湿疹,会给人带来极大的困扰。那么哪些因素会引起湿疹呢?如果患上了湿疹的症状,又应该怎么去治疗呢?为了预防患上湿疹,我们应该在日常生活当中注意哪些?要想知道以上三个...

怎样监视老婆的手机微信聊天信息

一直以为怀孕是最累的,没想到生完孩子后会有更多的事情等着你呢?比如宝宝特别喜欢抱睡怎么办?感觉胳膊都要断了,为什么宝宝一放下就容易醒呢?宝宝一放就醒的解决办法。 孩子喜欢抱睡怎么办 几乎所有的婴儿...

家长为什么会反对早恋(如何应对孩子恋爱的情况)

不念书小学早恋引导若凭据以上概念看,祝你乐成哦,孩子一般情防备况下是不会早恋的,早恋一小我私家的芳华期没有青涩的感引导情萌动,自觉危害发生免疫力。高中这种爱的感受是责任是动力。爱情因素要领未免太惋惜了...

吉林农业科技学院怎么样(环境如何、校区设备

吉林农业科技学院怎么样(环境如何、校区设备

2017年高考已经结束,新的高三学子们要开始备战新的高考了,对于高考生来说,选对一个专业比选大学还重要,很多想要报考吉林农业科技学院的学生想要了解该校的王牌专业有哪些?整理了报考吉林农业科技学院选择什...

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

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

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