首页 > 矿场 > 用 Python 分析网络流量
路安  

用 Python 分析网络流量

摘要:比特币矿机IP 流量将何去何从?——用 Python 回答把一个网际协议地址(IP 地址)和它所在的物理地址关联起来,可以用 MaxMind 公司提供的一个可以免费获取的开源数据库 GeoLiteCity。有了这个数据库,就可以把 IP 地址与对应的国家、邮政编码、国家名称以及常规经纬度坐标关联起来
IP 流量将何去何从?——用 Python 回答

把一个网际协议地址(IP 地址)和它所在的物理地址关联起来,可以用 MaxMind 公司提供的一个可以免费获取的开源数据库 GeoLiteCity。有了这个数据库,就可以把 IP 地址与对应的国家、邮政编码、国家名称以及常规经纬度坐标关联起来。

使用 PyGeoIP 关联 IP 地址和物理位置

Jennifer Ennis 编写了一个查询 GeoLiteCity 数据库的纯 Python 库——pygeoip。城市(city)、区域名称(region_name)、邮政编码(postal_code)、国名(country_name)、经纬度以及其他识别信息的记录

import pygeoipgi = pygeoip.GeoIP("/opt/GetIP/Geo.dat")def print_record(target):    rec = gi.recory_by_name(target)    city = rec["city"]    region = rec["region_name"]    country = rec["country_name"]    long = rec["longitude"]    lat = rec["latitude"]    print("[*] Target: {} Geo-located.".format(target))    print("[+] {}, {}, {}".format(city, region, country))    print("[+] Latitude: {}, Longitude: {}".format(lat, long))target = "173.255.226.98"print_record(target)
使用 Dpkt 解析包

Dpkt 允许逐个分析抓包文件里的各个数据包,并检查数据包中的每个协议层。也可以使用 pypcap 分析当前的实时流量。

import dpktimport socketdef print_pcap(pcap):    for ts, buf in pcap:        try:            eth = dpkt.ethernet.Ethernet(buf)            ip = eth.data            src = socket.inet_ntoa(ip.src)            dst = socket.inet_ntoa(ip.dst)            print("[+] Src: {} --> Dst: {}".format(src, dst))        except:            passdef main():    f = open("geotest.pcap")    pcap = dpkt.pcap.Reader(f)    print_pcap(pcap)
使用 Python 画谷歌地图

谷歌地图能在一个专门的界面中显示出一个虚拟地球仪、地图和地理信息。虽然用的是专用的界面,但谷歌地图可以让你很方便地在地球仪上画出指定位置或轨迹。通过创建一个扩展名为 KML 的文本文件,用户可以把许多个地理位置标在谷歌地球上。KML 是有特定规定的 XML 结构。

写一个函数 ret_KML 接收一个 IP,并返回表示该 IP 地址对应物理地址的 KML 结构

def ret_kml(ip):    rec = gi.record_by_name(ip)    try:        longitude = rec["longitude"]        latitude= rec["latitude"]        kml = (            ""            "%s"            ""            "%6f,%6f"            ""            ""        ) % (ip, longitude, latitude)        return kml    except Exception as e:        return ""

可能想要使用不同的图标来表示不同类型的网络流量,比如可以用源和目标 TCP 端口来区分不同的网络流量。可以查看谷歌 KML 文档。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。