def get_default_device(destaddr): """ If any default device is available in options use that, otherwise, Return the first (default) network device, which is usually 'eth0' under Linux and Windows and varies under BSD. address.recognize(destaddr) == address.IPv4: address.recognize(destaddr) == address.IPv6: @return: name of the first device. """ # TODO: read device from options #device = "eth0" devices = pypcap.findalldevs() exp = re.compile('usb*', re.IGNORECASE) for dev in devices: if re.match(exp, dev) or dev == 'any': print else: if address.recognize(destaddr) == address.IPv4: if destaddr == '127.0.0.1': device = 'lo' break else: saddr = netifaces.ifaddresses(dev)[ netifaces.AF_INET][0]['addr'] if saddr == '127.0.0.1': device = dev continue else: device = dev break elif address.recognize(destaddr) == address.IPv6: if destaddr == '::1' or destaddr == '0000:0000:0000:0000:0000:0000:0000:0001' or destaddr == '0:0:0:0:0:0:0:1': device = 'lo' break else: saddr = netifaces.ifaddresses(dev)[ netifaces.AF_INET6][0]['addr'] saddr_re = re.compile('fe80*', re.IGNORECASE) if saddr == '::1': continue elif re.match(saddr_re, saddr): device = dev continue else: device = dev break else: device = devices[0] print devices print device #device = netifaces.interfaces()[0] return device
def get_default_device(destaddr): """ If any default device is available in options use that, otherwise, Return the first (default) network device, which is usually 'eth0' under Linux and Windows and varies under BSD. address.recognize(destaddr) == address.IPv4: address.recognize(destaddr) == address.IPv6: @return: name of the first device. """ # TODO: read device from options #device = "eth0" devices = pypcap.findalldevs() exp = re.compile('usb*', re.IGNORECASE) for dev in devices: if re.match(exp,dev) or dev == 'any': print else: if address.recognize(destaddr) == address.IPv4: if destaddr == '127.0.0.1': device = 'lo' break else: saddr = netifaces.ifaddresses(dev)[netifaces.AF_INET][0]['addr'] if saddr == '127.0.0.1': device = dev continue else: device = dev break elif address.recognize(destaddr) == address.IPv6: if destaddr == '::1' or destaddr == '0000:0000:0000:0000:0000:0000:0000:0001' or destaddr == '0:0:0:0:0:0:0:1': device = 'lo' break else: saddr = netifaces.ifaddresses(dev)[netifaces.AF_INET6][0]['addr'] saddr_re = re.compile('fe80*', re.IGNORECASE) if saddr == '::1': continue elif re.match(saddr_re , saddr): device = dev continue else: device = dev break else: device = devices[0] print devices print device #device = netifaces.interfaces()[0] return device
def test_get_available_devices(self): if umit.umpa.config['libpcap'] == 'pypcap': from umit.umpa.sniffing.libpcap import pypcap assert umit.umpa.sniffing.get_available_devices()==pypcap.findalldevs()
def test_get_available_devices(self): if umit.umpa.config['libpcap'] == 'pypcap': from umit.umpa.sniffing.libpcap import pypcap assert umit.umpa.sniffing.get_available_devices( ) == pypcap.findalldevs()
def test_findalldevs(self): try: assert pypcap.findalldevs() == pcap.findalldevs() except UMPASniffingException: py.test.skip("no suitable devices for sniffing found. " "propably not sufficent priviliges.")