Tiny pcap fix

This commit is contained in:
gpotter2 2018-01-10 19:38:28 +01:00
parent 74dba54503
commit d134238b56
1 changed files with 15 additions and 9 deletions

View File

@ -417,27 +417,32 @@ class NetworkInterface(object):
# Other attributes are optional # Other attributes are optional
self._update_pcapdata() self._update_pcapdata()
try:
# Npcap loopback interface
if self.name == scapy.consts.LOOPBACK_NAME and conf.use_npcap:
# https://nmap.org/npcap/guide/npcap-devguide.html
self.mac = "00:00:00:00:00:00"
self.ip = "127.0.0.1"
conf.cache_ipaddrs[self.pcap_name] = socket.inet_aton(self.ip)
return
else:
self.mac = data['mac']
except KeyError:
pass
try: try:
self.ip = socket.inet_ntoa(get_if_raw_addr(self)) self.ip = socket.inet_ntoa(get_if_raw_addr(self))
except (TypeError, NameError): except (TypeError, NameError):
pass pass
try: try:
# Windows native loopback interface
if not self.ip and self.name == scapy.consts.LOOPBACK_NAME: if not self.ip and self.name == scapy.consts.LOOPBACK_NAME:
self.ip = "127.0.0.1" self.ip = "127.0.0.1"
conf.cache_ipaddrs[self.pcap_name] = socket.inet_aton(self.ip) conf.cache_ipaddrs[self.pcap_name] = socket.inet_aton(self.ip)
except (KeyError, AttributeError, NameError) as e: except (KeyError, AttributeError, NameError) as e:
print(e) print(e)
try:
if self.name == scapy.consts.LOOPBACK_NAME and conf.use_npcap:
# https://nmap.org/npcap/guide/npcap-devguide.html
self.mac = "00:00:00:00:00:00"
else:
self.mac = data['mac']
except KeyError:
pass
def _update_pcapdata(self): def _update_pcapdata(self):
if self.is_invalid(): if self.is_invalid():
return return
@ -705,6 +710,7 @@ class NetworkInterfaceDict(UserDict):
def reload(self): def reload(self):
"""Reload interface list""" """Reload interface list"""
self.restarted_adapter = False
self.data.clear() self.data.clear()
self.load_from_powershell() self.load_from_powershell()