Traffic sniffing

本文介绍了如何使用Python的Scapy库抓取指定IP目标的数据包,包括源IP、端口、目标IP和端口信息,并演示了如何设置过滤条件和保存捕获的包到文件中。
摘要由CSDN通过智能技术生成
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from scapy.all import *
import time
import optparse
# 回调打印函数
def PackCallBack(packet):
    print("*"*30)
    # 打印源IP、源端口、目的IP、目的端口
    print("[%s]Source:%s:%s--->Target:%s:%s"%(TimeStamp2Time(packet.time),packet[IP].src,packet.sport,packet[IP].dst,packet.dport))
    # print("[%s]Source:%s:%s--->Target:%s:%s"%(packet.time, packet[IP].src, 4444, packet[IP].dst, 5555))
    # 打印输出数据包
    print(packet.show())
    print("*"*30)
    # 时间戳转换函数
def TimeStamp2Time(timeStamp):
    timeTmp = time.localtime(timeStamp)
    myTime = time.strftime("%Y-%m-%d %H:%M:%S", timeTmp)
    return myTime

if __name__ == '__main__':
    parser = optparse.OptionParser("Example:python %prog -i 127.0.0.1 -c 5-o ms08067.pcap\n")
    #添加IP参数 -i
    parser.add_option('-i', '--IP', dest='hostIP',default="127.0.0.1", type='string',help='IP address [default = 127.0.0.1]')
    #添加数据包总数参数-c
    parser.add_option('-c', '--count', dest='packetCount',default=5, type='int',help='Packet count [default = 5]')
    #添加保存文件名参数-o
    parser.add_option('-o', '--output', dest='fileName',default="ms08067.pcap", type='string',help='save filename [default = ms08067.pcap]')
    (options, args) = parser.parse_args()
    defFilter = "dst " + options.hostIP
    packets = sniff(filter=defFilter, prn=PackCallBack, count=options.packetCount)
    # 保存输出文件
    wrpcap(options.fileName, packets)
    
# python temp.py -i 127.0.0.1
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值