python绝技中对wireshark数据包分析dpkt、scapy以及geoip2的使用方法。案例获取wireshark数据包中的ip地址,并查询ip地址归属城市。

本文介绍了一种使用Python解析PCAP文件并提取IP地址的方法,同时利用GeoIP数据库进行地理定位,展示如何获取源和目标IP地址及其对应的地理位置。
一 dpkt 

#!C:\Python37
# -*- coding:utf-8 -*-

import dpkt
import socket
from scapy.all import *
import geoip2.database
import optparse


def PrintPcap_dpkt(filename):
    iplist = []
    try:
        filepcap = open(filename,'rb')
        pcap = dpkt.pcap.Reader(filepcap)
        for (ts,buf) in pcap:
            eth = dpkt.ethernet.Ethernet(buf)

            ip = eth.data
            src = socket.inet_ntoa(ip.src)
            dst = socket.inet_ntoa(ip.dst)
            if not str(src) in iplist:
                iplist.append(str(src))
            if not str(dst) in iplist:
                iplist.append(str(dst))

            print(f'[+]Src:{src}--->Dst:{dst}')

        filepcap.close()
        print(iplist)
        return iplist
    except Exception as e:
        print(e)
        pass
    return

def PrintPcap_scapy(filename):
    iplist = []
    try:
        pcap = rdpcap(filename)
        for rd in pcap:
            #print(rd.show())
            if rd['IP'].payload:
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值