python原生如何实现抓包_python实现抓包、解析流程,超过瘾!

本文介绍了如何利用Python的dpkt库进行网络封包的抓取和解析。通过scapy库的sniff函数获取pcap文件,然后使用dpkt解析以太网、IP、TCP等数据包,特别地,关注了HTTP请求的URL、方法、头部信息和正文内容的展示。
摘要由CSDN通过智能技术生成

importosimportdpktimportsocketimportdatetimeimportuuidfrom scapy.sendrecv importsnifffrom scapy.utils importwrpcapdefget_local_ip():

hostname=socket.gethostname()#获取本机内网ip

local_ips = socket.gethostbyname_ex(hostname)[-1]returnlocal_ipsdefbody_transfer(body):

str_body=body.decode()

body_ls= str_body.split("&")for item inbody_ls:

key_, value_= item.split("=")print("%s: %s"%(key_, value_))defget_dpkt():

dpkt_= sniff(count = 100) #这里是针对单网卡的机子,多网卡的可以在参数中指定网卡,例:iface=Qualcomm QCA9377 802.11ac Wireless Adapter

_uuid =uuid.uuid1()

filename= f"{_uuid}.pcap"wrpcap(filename, dpkt_)returnfilenamedefprint_pcap(pcap):try:

local_ips=get_local_ip()for timestamp, buf inpcap:

eth= dpkt.ethernet.Ethernet(buf) #获得以太包,即数据链路层包

#print("ip layer:"+eth.data._

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值