From d134238b5656a8fb87024f95ecbb2cbd16c75801 Mon Sep 17 00:00:00 2001 From: gpotter2 Date: Wed, 10 Jan 2018 19:38:28 +0100 Subject: [PATCH] Tiny pcap fix --- scapy/arch/windows/__init__.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/scapy/arch/windows/__init__.py b/scapy/arch/windows/__init__.py index e10ee4a3c..9d359d02f 100755 --- a/scapy/arch/windows/__init__.py +++ b/scapy/arch/windows/__init__.py @@ -417,27 +417,32 @@ class NetworkInterface(object): # Other attributes are optional 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: self.ip = socket.inet_ntoa(get_if_raw_addr(self)) except (TypeError, NameError): pass try: + # Windows native loopback interface if not self.ip and self.name == scapy.consts.LOOPBACK_NAME: self.ip = "127.0.0.1" conf.cache_ipaddrs[self.pcap_name] = socket.inet_aton(self.ip) except (KeyError, AttributeError, NameError) as 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): if self.is_invalid(): return @@ -705,6 +710,7 @@ class NetworkInterfaceDict(UserDict): def reload(self): """Reload interface list""" + self.restarted_adapter = False self.data.clear() self.load_from_powershell()