首页 > 编程语言 >python scapy发包、抓包、分析

python scapy发包、抓包、分析

时间:2024-10-11 11:43:28浏览次数:6  
标签:pkt python IP scapy 192.168 发包 print 数据包

import os
import telnetlib
 
 
from scapy.all import *
from scapy.layers.inet import *
from scapy.all import sniff
 
# pac = dir(scapy.layers)
# print(pac) #执行代码后,会输出Scapy中的各层
# print(explore(scapy.layers.l2))  #查看各种二层协议
# print(explore(scapy.packet.ls(Ether)))  #查看协议类的属性
# print(explore(scapy.packet.ls(IP)))
# print(explore(scapy.packet.ls(TCP)))
# print(explore(scapy.packet.ls(UDP)))
 
#构造数据包,该包的结构包含IP部分和TCP部分
# pkt = IP(src="192.168.56.1",dst="192.168.56.100") /TCP()
# pkt.show()
#
# #Ether类用于设置发送方和接收方的 MAC 地址
# pkt = Ether(src="01:80:c2:00:00:14",dst="ff-ff-ff-ff-ff-ff")
# pkt.show()
#
# #构造HTTP
# pkt = IP()/TCP()/"GET /HTTP1.0\r\n\r\n"
 
 
#构造ICMP包,数据包查看
# pkt = IP(dst="192.168.56.100")/ICMP()
# res = sr1(pkt)
# res.show()  #查看数据包
# ls(pkt)  #查看数据包格式
 
 
 
#数据包文件的存储、读取
#pkt1=IP(src="192.168.147.238",dst="192.168.147.215")/TCP()
pkt1=IP(dst="183.240.98.198")/ICMP()
pkt2=IP(dst="183.240.98.198")/ICMP()
 
pkts=[pkt1,pkt2]
wrpcap("./temp.cap",pkts)  #将数据包列表pkts存储在文件中
pkt_list=rdpcap("./temp.cap")  #读取存储数据包的文件,列表格式
print(pkt_list[0].summary())  #第一个数据包的摘要
print(pkt_list[1].show())  #第二个数据包的详细数据
res,unres = sr(pkt_list)
res.summary()  #结果显示在一行
#列出本机接口:
print(conf.ifaces)
#列出本机路由:
print(conf.route)
 
a = traceroute(["www.baidu.com"],maxttl=10)
print(a)
 
# def callback(pkt):
#     print(pkt.summary)
#     wrpcap("test.cap",pkt)
#
# sniff(filter="icmp and 192.168.56.100",
#       iface="VirtualBox Host-Only Ethernet Adapter #2",
#       prn=callback,
#       count=100)
 
 
#####################
#########抓包########
#####################
 
result_list=[]
def callback(pkt):
    # print(pkt.summary)
    # wrpcap("test.cap",pkt)
    print(pkt)
    result_list.append(pkt)
 
sniff(filter="icmp and host 183.240.98.198",
      iface="Intel(R) Dual Band Wireless-AC 8265",
      prn=callback,
      count=5)
 
wrpcap("test.cap",result_list)
 
 
#####################
#########分析########
#####################
 
import pyshark
#import nest_asyncio
 
 
#如果出现 RuntimeError: This event loop is already running,避免报错
#nest_asyncio.apply()
 
#capture = pyshark.FileCapture('test.cap', tshark_path='C:\Program Files\Wireshark\WireShark.exe',  display_filter='http')
capture = pyshark.FileCapture('D:/archive/code/Project/OM-ZX/test.pcapng', tshark_path='D:/Program Files/Wireshark/WireShark.exe')
for pkt in capture:
    if (pkt.ip.get_field_by_showname("Source Address") == '192.168.1.5'):
        print("Source:", pkt.ip.get_field_by_showname("Source Address") + "\tDestination: ",pkt.ip.get_field_by_showname("Destination Address"))
capture = pyshark.FileCapture('test.cap',)
 
# path = r'D:/PyProject/allinone/caps/'
# lists = os.listdir(path)
# print(lists)
# for f in lists:
#     file = path+f
#     print(file)
#     caps = pyshark.FileCapture(file,tshark_path="C:\Program Files\Wireshark\WireShark.exe")
#     for pkt in caps:    #遍历每条数据
#         print(pkt)
#         try:
#             # 里面的layer ETH,layer IP,layer BGP,TCP通过pkt.bgp,pkt.ip,pkt.eth来访稳
#             print("Source:", pkt.ip.get_field_by_showname("Source") + "\tDestination: ",pkt.ip.get_field_by_showname("Destination"))
#             if (pkt.bgp.get_field_by_showname("BGP Identifier") is not None):
#                 print("BGP Identifier:", pkt.bgp.get_field_by_showname("BGP Identifier"))
#         except Exception as e:
#                 print("BGP、IP、ETH、TCP其中一个或者多个不存在")

  

标签:pkt,python,IP,scapy,192.168,发包,print,数据包
From: https://www.cnblogs.com/adam2010/p/18458087

相关文章

  • Python+Layui后台管理
    项目简介:主要分为这几个模块:创建任务、发布任务、任务清单、修改任务、取消任务、个人填写日志、日志记录。1.任务列表模糊查询:提供搜索框,支持用户输入关键词进行模糊查询。操作按钮:分配任务、公司内部创建任务2.公司内部创建任务任务表单主要是有:客户单位、合同名称、联系......
  • Python高级库与框架:提升你的开发效率
    引言在Python的世界中,有着无数强大且灵活的库和框架,它们大大提升了开发的效率和能力。无论是在数据分析、机器学习、Web开发,还是爬虫等领域,掌握这些高级库与框架都能帮助你更快速地完成任务。不过,新手在使用这些库和框架时,常常会遇到一些困难和误区。今天,我们将一起探索一些流......
  • 基于YOLO11/v10/v8/v5深度学习的安检X光危险品检测与识别系统设计与实现【python源码+
    《博主简介》小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~......
  • Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测
    全文链接:https://tecdat.cn/?p=37839原文出处:拓端数据部落公众号 分析师:KefanYu在大众旅游蓬勃发展的背景下,乡村旅游已成为推动乡村经济、社会和文化发展的关键力量。当前,乡村旅游接待设施主要以招待所、小宾馆和农家乐等形式存在。然而,一方面这些设施的接待能力有限,另一方......
  • [含文档+PPT+源码等]精品基于Python实现的个性化阅读推荐系统
    基于Python实现的个性化阅读推荐系统的背景主要源于互联网技术的飞速发展和用户对于个性化信息获取的需求增加。以下是对该背景的具体阐述:一、互联网技术发展随着互联网技术的不断进步,数字化阅读已成为人们获取信息的重要方式。无论是电子书、在线文章还是各类文献资料,都通过......
  • python+django+uniapp高校社团管理系统 微信小程序 a4z3n
    目录项目介绍具体实现截图开发者工具介绍技术路线解决的思路性能/安全/负载方面开发语言以及框架介绍数据库设计python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取项目介绍主要是对于申请入社工作调研,以及对申请入社信息采集、存储、......
  • 【教程】0x04 绘制记牌器窗口及插件打包 —— 通过MYScrcpy学python系列
    前言MYScrcpyGithub/Gitee从1.6.4版本开始,MYScrcpy为童鞋们提供了一个开放的插件开发环境(Extensions)。童鞋们可以根据需要自行开发插件。本章主要讲解如何通过面向对象的思想,借助Dearpygui绘制一个记牌器面板,同时如何打包插件进行共享。注意插件用于功能测试及......
  • Python快速编程小案例——打印蚂蚁森林植树证书
    提示:(个人学习),案例来自工业和信息化“十三五”人才培养规划教材,《Python快速编程入门》第2版,黑马程序员◎编著蚂蚁森林是支付宝客户端发起“碳账户”的一款公益活动:用户通过步行地铁出行、在线消费等行为,可在蚂蚁森林中获取能量,当能量到达一定数值后,用户可以在支付宝中申请......
  • [Python手撕]不同的二叉搜索树(给出具体的树)
    #Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defgenerateTrees(self,n:int)->List......
  • 计算机毕业设计 医院预约挂号系统的设计与实现 Python毕业设计 Python毕业设计选题【
    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌......