Python PCAP module

github: https://github.com/pynetwork/pypcap#installation-from-sources

WinPcap与Windows 10存在兼容性问题,因此建议使用Npcap(Nmap的Windows数据包嗅探库,基于WinPcap / Libpcap库,但具有提高的速度,可移植性,安全性和效率)。 在库安装过程中,请启用WinPcap API兼容模式。

Npcap安装又一直报错,还是转战linux吧~

__author__ = 'Administrator'
import dpkt
import pcap
import socket
import datetime
import platformif platform.system() == "Windows":SYS_INFO = 0
elif platform.system() == "Linux":SYS_INFO = 1def mac_addr(address):"""Convert a MAC address to a readable/printable stringArgs:address (str): a MAC address in hex form (e.g. '\x01\x02\x03\x04\x05\x06')Returns:str: Printable/readable MAC address"""return ':'.join('%02x' % ord(b) for b in address)def ip_to_str(address):"""Print out an IP address given a stringArgs:address (inet struct): inet network addressReturns:str: Printable/readable IP address"""if SYS_INFO == 0:return socket.inet_ntoa(address)return socket.inet_ntop(socket.AF_INET, address)def print_packets(p):for ts,pkt in p:print ('Timestamp: '), str(datetime.datetime.utcfromtimestamp(ts))eth = dpkt.ethernet.Ethernet(pkt)print ('Ethernet Frame: ', mac_addr(eth.src), mac_addr(eth.dst), eth.type)if eth.type != dpkt.ethernet.ETH_TYPE_IP:print ('Non IP Packet type not supported %s\n' % eth.data.__class__.__name__)continue# Now unpack the data within the Ethernet frame (the IP packet)# Pulling out src, dst, length, fragment info, TTL, and Protocolip = eth.data# Pull out fragment information (flags and offset all packed into off field, so use bitmasks)do_not_fragment = bool(ip.off & dpkt.ip.IP_DF)more_fragments = bool(ip.off & dpkt.ip.IP_MF)fragment_offset = ip.off & dpkt.ip.IP_OFFMASKtcp = ip.dataprint (tcp.data)# Print out the infoprint ('IP: %s:%d -> %s:%d  (len=%d ttl=%d DF=%d MF=%d offset=%d)\n' % (ip_to_str(ip.src),tcp.sport,ip_to_str(ip.dst),tcp.dport,ip.len, ip.ttl, do_not_fragment, more_fragments, fragment_offset))def test():winPcap = pcap.pcap()#winPcap.setfilter("tcp port 80")print_packets(winPcap)def readPcap():"""Open up a test pcap file and print out the packets"""with open('e:\\cron.cap', 'rb') as f:pcap = dpkt.pcap.Reader(f)print_packets(pcap)if __name__ == '__main__':test()#readPcap()

win10使用import pcap 建议放弃,还是使用linux系统吧相关推荐

  1. 大学生及转行学IT编程,必须做到这4点,做不到!建议放弃编程方向

    大学生及转行学IT编程,必须做到这4点,做不到!建议放弃编程方向,否则,未来前途会非常迷茫,事业发展会更加尴尬! IT界:选择与努力,同样重要!方向错了,只能与目标背道而驰! 本文所有的数据为2018 ...

  2. AndroidStudio haxm installer win10安装失败问题建议

    AndroidStudio haxm installer win10安装失败问题建议 1.打开Windows10设置 搜索启用或关闭Windows功能 2.在虚拟机平台前面打勾 3.点击确定就可以等待 ...

  3. mac安装win10_Mac电脑运行Win10翻车,苹果建议更新显卡驱动

    尽管很多人表示,买Mac不用OS X系统的用户不配做苹果粉丝,但是依然有很多人在这样做.但不可否认的是,很多评价中最好的Windows兼容笔记本电脑是MacBook家族多次上榜.有很大一部分人是欣赏M ...

  4. xps13安装linux系统,[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统...

    [操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统 0 2017-07-17 12:00:18 博主今日投身于SLAM的研究事业,放 ...

  5. dell装双系统linux系统,记录DELL灵越7590/7591安装Ubuntu+Win10双系统

    前言 因学习所需,想给自己的笔记本安装 Linux 系统(虚拟机运行性能并不理想),但 Win10 也不能缺少,用了一些时间来折腾 Linux+Win10 双系统...安装过程中遇到了许多的困难,在此 ...

  6. 装纯净版win10系统在windows上装linux系统【完整详细版】

    文章目录 电脑上装系统的步骤 说明 准备材料 通过U盘烧录工具制作可引导的系统U盘 通过烧录好的U盘安装系统 说明 安装win10为例 安装linux说明 服务器上用u盘装系统的步骤 电脑没网卡解决方 ...

  7. ultraos win10启动盘_rufus制作win10启动盘,软碟通u盘装系统win10

    win10启动盘也就是一个使用U 盘制作的可以启动电脑并安装Win10系统的安装U盘,很多新手可能不太知道Win10启动盘怎么制作,其实是比较简单的,Win10启动盘不仅支持MBR启动方式,也支持UE ...

  8. linux版笔记本如何装win10,Linux系统的笔记本是什么样的?如何装Win10?这里给你详细解答...

    原标题:Linux系统的笔记本是什么样的?如何装Win10?这里给你详细解答 今年,华为/荣耀推出了第三方Linux版本的笔记本,很多小白对此一头雾水,纷纷表示看不明白,我们在微信后台也收到了非常多的 ...

  9. Win10 下安装Ubuntu 21.04桌面版 双系统 并设置win10为默认启动系统 详细教程

    文章目录 〇.写在前面 〇 - Plus:如何进入BIOS 〇 - Plus - Plus:U盘启动快捷键 一.磁盘分区:Win10划分未分配空间 二.下载Ubuntu 21.04镜像 三.安装U盘启 ...

  10. Linux 系统分区方案(双系统 Linux 200G+ win10)

    我的笔记本单条SSD实际容量 476G,将其中200分配给Linux系统作为日常主力系统,win10保留作为备用.以下是我的分区方案,有装双系统的可作为参考: 卷标 分区/挂载点 大小 说明 /sda ...

最新文章

  1. minifilter
  2. nginx配置文件nginx.conf
  3. CJOJ 2171 火车站开饭店(树型动态规划)
  4. 扫地机器人滤网顺序_1分钟小课堂:扫地机器人滤网多久换一次?
  5. docker-compose安装rabbitmq
  6. UVA 10534 Wavio Sequence DP LIS
  7. centos7 hostnamectl
  8. 背包九讲--01背包
  9. 联合作战效能评估软件
  10. 2020年第十七届中国研究生数学建模竞赛赛题+解压码
  11. java定时器定时发短信_quartz-job实现实时或定时发送短信任务(示例代码)
  12. 画出spi输出bdh数据总线时序图_单片机张毅刚课后习题答案.docx
  13. chromium笔记
  14. 【WebLogic使用】3.WebLogic配置jndi数据源
  15. 添加列、删除列的sql
  16. 零基础学日语资料附经验分享
  17. 北京时间与UTC时间转换
  18. 诺禾-C语言实现尾递归求7的阶乘
  19. OpenResty 连接Redis
  20. 软文推广:真实有效提升软文排名与收录的三大方法!

热门文章

  1. Java中数字朝着0.5的倍数取舍
  2. Flutter实战之图片圆角和圆形简单实现
  3. C/C++常见面试题整理
  4. python变量、运算符、要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入练习
  5. principle文本导入oracle,动效设计Principle:初识界面
  6. java船_Java-货船
  7. html实现点击切换页面,JavaScript实现的简单Tab点击切换功能示例
  8. java案例代码6-评委打分的模拟程序
  9. go语言中常用的关于文件目录的操作
  10. 梳理的关于mongodb的基础使用命令:----查询记录点--推荐使用: