okx

Python网络流量分析

时间:2023-06-12|浏览:145

IP流量将何去何从?——用Python回答

要将IP地址和物理地址关联起来,可以使用MaxMind公司提供的免费获取的开源数据库GeoLiteCity。该数据库能够将IP地址与对应的国家、邮政编码、国家名称以及经纬度坐标进行关联。

为了使用该数据库,可以使用Jennifer Ennis编写的纯Python库pygeoip。该库可以查询GeoLiteCity数据库,获取包括城市、区域名称、邮政编码、国名、经纬度和其他识别信息在内的信息记录。

使用以下代码可以查询指定IP地址的物理位置信息并输出到控制台:

``` import pygeoip

gi = pygeoip.GeoIP("/opt/GetIP/Geo.dat")

def print_record(target): rec = gi.record_by_name(target) city = rec["city"] region = rec["region_name"] country = rec["country_name"] longitude = rec["longitude"] latitude = 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。与此同时,也可以使用pypcap分析实时流量。下面的代码演示了如何使用Dpkt进行包分析:

``` import dpkt import socket

def 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: pass

def main(): f = open("geotest.pcap") pcap = dpkt.pcap.Reader(f) print_pcap(pcap) ```

若要在谷歌地图上绘制指定位置或路径,可以使用KML结构。可通过创建KML文件并按照特定规则填入地理位置信息来将多个地理位置标记在谷歌地球上。下面的代码演示了如何编写一个名为`ret_KML`的函数,它能够接收一个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: return "" ```

若要区分不同类型的网络流量,可以使用不同的图标表示。例如,可以使用源和目标TCP端口来区分不同的网络流量。有关谷歌KML文档,请参考官方文档。

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

减肥瘦身吧 币圈论坛 聚币网 借春秋 金色币圈 免费电影 代特币圈 非小号行情 元宇宙Web 宠物丫 周公解梦 茶百科 黄金行情 起名取名网 百悦米 妈妈知道 美白没斑啦 乐评网 趣玩币 谈股票 币圈ICO官网 玩合约 币圈官网 今日黄金 秒懂域名 币爸爸 二手域名 培训资讯网 借春秋财经 數字黃金 佩佩蛙官网 宝宝起名 天天财富 去玩呗SPA 数字财经 趣开心资讯 兼职信息网 百科书库 旅游资讯网 玩票票财经 爱网站 装修装饰网 皮卡丘资讯
在区块链世界中,智能合约不仅是代码的信任,更是商业的革命。通过了解其在供应链、版权保护等领域的应用,您将真正体验到智能合约的无限可能性
区块链世界GxPiKaQiu.com ©2020-2024版权所有 桂ICP备16002597号-2