diff --git a/ci/run_tests/requirements.txt b/ci/run_tests/requirements.txt index b00a84e7c..0704b2dbf 100644 --- a/ci/run_tests/requirements.txt +++ b/ci/run_tests/requirements.txt @@ -1 +1 @@ -netifaces==0.11.0 +psutil==5.9.8 diff --git a/ci/run_tests/run_tests.py b/ci/run_tests/run_tests.py index 43a938e8e..8a93ebeb3 100644 --- a/ci/run_tests/run_tests.py +++ b/ci/run_tests/run_tests.py @@ -1,10 +1,19 @@ import os import subprocess import argparse -import netifaces as ni +import psutil +import socket PCAP_FILE_PATH = os.path.join("Tests", "Pcap++Test", "PcapExamples", "example.pcap") +def get_ip_address(interface): + addresses = psutil.net_if_addrs().get(interface) + if not addresses: + return None + for address in addresses: + if address.family == socket.AF_INET: + return address.address + return None def main(): parser = argparse.ArgumentParser() @@ -32,7 +41,8 @@ def main(): ) args = parser.parse_args() - ip_address = ni.ifaddresses(args.interface)[ni.AF_INET][0]["addr"] + ip_address = get_ip_address(args.interface) + print("IP address is: %s" % ip_address) try: diff --git a/ci/run_tests/run_tests_windows.py b/ci/run_tests/run_tests_windows.py index bba46d8ba..6d1bae37c 100644 --- a/ci/run_tests/run_tests_windows.py +++ b/ci/run_tests/run_tests_windows.py @@ -1,13 +1,22 @@ import os import argparse import subprocess -import netifaces as ni +import psutil +import socket TCPREPLAY_PATH = "tcpreplay-4.4.1-win" PCAP_FILE_PATH = os.path.abspath( os.path.join("Tests", "Pcap++Test", "PcapExamples", "example.pcap") ) +def get_ip_address(interface): + addresses = psutil.net_if_addrs().get(interface) + if not addresses: + return None + for address in addresses: + if address.family == socket.AF_INET: + return address.address + return None def find_interface(): completed_process = subprocess.run( @@ -27,7 +36,7 @@ def find_interface(): interface = columns[1] try: ni_interface = interface.lstrip("\\Device\\NPF_") - ip_address = ni.ifaddresses(ni_interface)[ni.AF_INET][0]["addr"] + ip_address = get_ip_address(ni_interface) if ip_address.startswith("169.254"): continue completed_process = subprocess.run(