mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +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 dataclasses import dataclass
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
@ -136,6 +137,11 @@ def get_ip_address(
|
|||||||
if entity.argument in addresses:
|
if entity.argument in addresses:
|
||||||
for addr in addresses[entity.argument]:
|
for addr in addresses[entity.argument]:
|
||||||
if addr.family == IF_ADDRS_FAMILY[entity.entity_description.key]:
|
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 addr.address
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -129,7 +129,21 @@ def mock_psutil(mock_process: list[MockProcess]) -> Generator:
|
|||||||
"255.255.255.0",
|
"255.255.255.0",
|
||||||
"255.255.255.255",
|
"255.255.255.255",
|
||||||
None,
|
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": [
|
"eth1": [
|
||||||
snicaddr(
|
snicaddr(
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
'coordinators': dict({
|
'coordinators': dict({
|
||||||
'data': dict({
|
'data': dict({
|
||||||
'addresses': 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)]",
|
'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)]",
|
'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]
|
# 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]
|
# name: test_sensor[System Monitor IPv6 address eth1 - attributes]
|
||||||
ReadOnlyDict({
|
ReadOnlyDict({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user