Enough already! How does this work by example!?
#!/usr/bin/env ruby require "rubygems" require "pcaprub" class CaptureExample def initialize() #interface configuration @dev = ::Pcap.lookupdev #promiscous_mode = true @promiscous_mode = false @timeout = 0 #packet information @capture_packets = 100 @snaplength = 65535 @bpf = "ip and not dst net 110.0.0.0/8" end def getpackets system("ifconfig", @dev, "up") capture = ::Pcap.open_live(@dev, @snaplength, @promiscous_mode, @timeout) capture.setfilter(@bpf) begin puts "Started capture..(#{@dev} => \"#{@bpf}\")" capture.each do |packet| # Handling the number of packets to process @capture_packets -= 1 if @capture_packets == 0 break end end # ^C to stop sniffing rescue Interrupt puts "\nPacket Capture stopped by interrupt signal." rescue Exception => e puts "\nERROR: #{e}" retry end puts "Captured #{100 - @capture_packets} packets" return capture end end mycapture = CaptureExample.new() packet_capture = mycapture.getpackets puts "capture.stats['recv'] = #{packet_capture.stats['recv']}" puts "capture.stats['drop'] = #{packet_capture.stats['drop']}"