(count=0, store=1, offline=None, prn = None, lfilter=None, L2socket=None, timeout=None, stopper=None, stopperTimeout=None, opened_socket=None, *arg, **karg)
return plist.PacketList(lst,"Sniffed")
Sniff packets
sniff([count=0,] [prn=None,] [store=1,] [offline=None,] [lfilter=None,] + L2ListenSocket args) -> list of packets

  count: number of packets to capture. 0 means infinity
  store: wether to store sniffed packets or discard them
    prn: function to apply to each packet. If something is returned,
         it is displayed. Ex:
         ex: prn = lambda x: x.summary()
lfilter: python function applied to each packet to determine
         if further action may be done
         ex: lfilter = lambda x: x.haslayer(Padding)
offline: pcap file to read packets from, instead of sniffing them
timeout: stop sniffing after a given time (default: None)
stopper: stop the sniffer if the given function returns True
stopperTimeout: break the select to check the returned value of stopper()
L2socket: use the provided L2socket
opened_socket: provide an object ready to use .recv() on
Sniff packets
sniff([count=0,] [prn=None,] [store=1,] [offline=None,] [lfilter=None,] + L2ListenSocket args) -> list of packets
Sniff packets sniff ( [ count = 0 ] [ prn = None ] [ store = 1 ] [ offline = None ] [ lfilter = None ] + L2ListenSocket args ) - > list of packets
def sniff(count=0, store=1, offline=None, prn = None, lfilter=None, L2socket=None, timeout=None, stopper=None, stopperTimeout=None, opened_socket=None, *arg, **karg):
    """Sniff packets
sniff([count=0,] [prn=None,] [store=1,] [offline=None,] [lfilter=None,] + L2ListenSocket args) -> list of packets

  count: number of packets to capture. 0 means infinity
  store: wether to store sniffed packets or discard them
    prn: function to apply to each packet. If something is returned,
         it is displayed. Ex:
         ex: prn = lambda x: x.summary()
lfilter: python function applied to each packet to determine
         if further action may be done
         ex: lfilter = lambda x: x.haslayer(Padding)
offline: pcap file to read packets from, instead of sniffing them
timeout: stop sniffing after a given time (default: None)
stopper: stop the sniffer if the given function returns True
stopperTimeout: break the select to check the returned value of stopper()
L2socket: use the provided L2socket
opened_socket: provide an object ready to use .recv() on
    """
    c = 0
    
    if opened_socket is not None:
        s = opened_socket
    else:
        if offline is None:
            if L2socket is None:
                L2socket = conf.L2listen
            s = L2socket(type=ETH_P_ALL, *arg, **karg)
        else:
            s = PcapReader(offline)

    lst = []
    if timeout is not None:
        stoptime = time.time()+timeout
    remain = None
    
    if stopperTimeout is not None:
        stopperStoptime = time.time()+stopperTimeout
    remainStopper = None
    while 1:
        try:
            if timeout is not None:
                remain = stoptime-time.time()
                if remain <= 0:
                    break
            if stopperTimeout is not None:
                remainStopper = stopperStoptime-time.time()
                if remainStopper <= 0:
                    if stopper and stopper():
                        break
                    stopperStoptime = time.time()+stopperTimeout
                    remainStopper = stopperStoptime-time.time()
		sel = select([s],[],[],remainStopper)
                if s not in sel[0]:
                    if stopper and stopper():
                        break
	    else:	
                sel = select([s],[],[],remain)

            if s in sel[0]:
                p = s.recv(MTU)
                if p is None:
                    break
                if lfilter and not lfilter(p):
                    continue
                if store:
                    lst.append(p)
                c += 1
                if prn:
                    r = prn(p)
                    if r is not None:
                        print r
                if count > 0 and c >= count:
                    break
        except KeyboardInterrupt:
            break
    if opened_socket is None:
        s.close()
    return plist.PacketList(lst,"Sniffed")
def sniff ( count = 0 , store = 1 , offline = None , prn = None , lfilter = None , L2socket = None , timeout = None , stopper = None , stopperTimeout = None , opened_socket = None , * arg , * * karg ) : c = 0 if opened_socket is not None : s = opened_socket else : if offline is None : if L2socket is None : L2socket = conf . L2listen s = L2socket ( type = ETH_P_ALL , * arg , * * karg ) else : s = PcapReader ( offline ) lst = [ ] if timeout is not None : stoptime = time . time ( ) + timeout remain = None if stopperTimeout is not None : stopperStoptime = time . time ( ) + stopperTimeout remainStopper = None while 1 : try : if timeout is not None : remain = stoptime - time . time ( ) if remain <= 0 : break if stopperTimeout is not None : remainStopper = stopperStoptime - time . time ( ) if remainStopper <= 0 : if stopper and stopper ( ) : break stopperStoptime = time . time ( ) + stopperTimeout remainStopper = stopperStoptime - time . time ( ) sel = select ( [ s ] , [ ] , [ ] , remainStopper ) if s not in sel [ 0 ] : if stopper and stopper ( ) : break else : sel = select ( [ s ] , [ ] , [ ] , remain ) if s in sel [ 0 ] : p = s . recv ( MTU ) if p is None : break if lfilter and not lfilter ( p ) : continue if store : lst . append ( p ) c += 1 if prn : r = prn ( p ) if r is not None : print r if count > 0 and c >= count : break except KeyboardInterrupt : break if opened_socket is None : s . close ( ) return plist . PacketList ( lst , "Sniffed" )