in selftest/selftest.py [0:0]
def get_ipv4_addresses(interface_name: str) -> List[str]:
"""Get the IPv4 addresses of a given network interface using `ip addr`."""
try:
result = subprocess.run(
["ip", "-4", "addr", "show", interface_name],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
check=True,
)
ipv4_addresses = re.findall(r"inet (\d+\.\d+\.\d+\.\d+)", result.stdout)
return ipv4_addresses
except subprocess.CalledProcessError as error:
logger.error("failed to get IPv4 address for %s: %r", interface_name, error)
raise