• 快速实现python抓包嗅探


    1. 使用scapy ,但是这个在macos上安装比较麻烦,没有多试

    2. 使用pypcap, 这个相对上手容易

     1 #coding:utf8
     2 __author__ = 'yeyong'
     3 import dpkt
     4 import pcap
     5 
     6 sniffer = pcap.pcap(name="en0")   #name parameter => interface name
     7 sniffer.setfilter("tcp")                         #filter sentence
     8 cur_timestamp = 0
     9 c=0
    10 caplen = 0
    11 for packet_time,packet_data in sniffer:
    12     packet_time = int(packet_time)
    13     if cur_timestamp == packet_time:
    14         c +=1
    15         caplen += len(packet_data)
    16     else:
    17         print cur_timestamp, c, caplen
    18         cur_timestamp = packet_time
    19         c=0
    20         caplen = 0
    # packet = dpkt.ethernet.Ethernet(packet_data)#二层数据报文嘛
    # print "SRC IP:%d.%d.%d.%d"%tuple(map(ord,list(packet.data.src)))
    # print "DST IP:%d.%d.%d.%d"%tuple(map(ord,list(packet.data.dst)))
    # print "SRC PORT:%s"%packet.data.data.sport
    # print "DST PORT:%s"%packet.data.data.dport

    需要确认一下性能,因为实际场景上一秒可能有10MB的流量,不知道这个能否撑住

    另外还需要解包拿到sip, dport等

    3. packetbeat应该已经实现了并且性能不错,但是我只需要很简单的一部分功能,需要剥离相关代码,需要花费时间,如果2不太好办,可以试试

    4. https://www.2cto.com/kf/201204/125809.html https://www.cnblogs.com/qiyeboy/p/9033707.html等也有方案,但是需要确认linux下如何监听指定的端口

  • 相关阅读:
    nginx2
    nginx1
    将Tomcat设置为自动启动的服务最快捷方法
    keepalived VS zookeeper
    Linux CentOS 7 下 Apache Tomcat 7 安装与配置
    使用curl 命令模拟POST/GET请求
    netty3---传统IO,NIO,nettyIO
    个人或小型企业站该如何选择服务器?
    如果你不懂备案,那我简单点跟你说
    SAE Java相关问题小结
  • 原文地址:https://www.cnblogs.com/yeyong/p/10897125.html
Copyright © 2020-2023  润新知