mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Show correct ipv6 address in System Monitor (#114024)
This commit is contained in:
parent
ce48e6e574
commit
7b0abb00aa
@ -7,6 +7,7 @@ import contextlib
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from functools import lru_cache
|
||||
import ipaddress
|
||||
import logging
|
||||
import socket
|
||||
import sys
|
||||
@ -136,6 +137,11 @@ def get_ip_address(
|
||||
if entity.argument in addresses:
|
||||
for addr in addresses[entity.argument]:
|
||||
if addr.family == IF_ADDRS_FAMILY[entity.entity_description.key]:
|
||||
address = ipaddress.ip_address(addr.address)
|
||||
if address.version == 6 and (
|
||||
address.is_link_local or address.is_loopback
|
||||
):
|
||||
continue
|
||||
return addr.address
|
||||
return None
|
||||
|
||||
|
@ -129,7 +129,21 @@ def mock_psutil(mock_process: list[MockProcess]) -> Generator:
|
||||
"255.255.255.0",
|
||||
"255.255.255.255",
|
||||
None,
|
||||
)
|
||||
),
|
||||
snicaddr(
|
||||
socket.AF_INET6,
|
||||
"fe80::baf2:8a90:4f78:b1cb%end0",
|
||||
"ffff:ffff:ffff:ffff::",
|
||||
None,
|
||||
None,
|
||||
),
|
||||
snicaddr(
|
||||
socket.AF_INET6,
|
||||
"2a00:1f:2103:3a01:3333:2222:1111:0000",
|
||||
"ffff:ffff:ffff:ffff::",
|
||||
None,
|
||||
None,
|
||||
),
|
||||
],
|
||||
"eth1": [
|
||||
snicaddr(
|
||||
|
@ -4,7 +4,7 @@
|
||||
'coordinators': dict({
|
||||
'data': dict({
|
||||
'addresses': dict({
|
||||
'eth0': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
|
||||
'eth0': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='fe80::baf2:8a90:4f78:b1cb%end0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='2a00:1f:2103:3a01:3333:2222:1111:0000', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None)]",
|
||||
'eth1': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.10.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
|
||||
'vethxyzxyz': "[snicaddr(family=<AddressFamily.AF_INET: 2>, address='172.16.10.1', netmask='255.255.255.0', broadcast='255.255.255.255', ptp=None)]",
|
||||
}),
|
||||
|
@ -95,7 +95,7 @@
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor[System Monitor IPv6 address eth0 - state]
|
||||
'unknown'
|
||||
'2a00:1f:2103:3a01:3333:2222:1111:0000'
|
||||
# ---
|
||||
# name: test_sensor[System Monitor IPv6 address eth1 - attributes]
|
||||
ReadOnlyDict({
|
||||
|
Loading…
x
Reference in New Issue
Block a user