diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php
index 865b44a1c..f4aed0270 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php
@@ -42,6 +42,7 @@ class Leases4Controller extends ApiControllerBase
$leases = json_decode($backend->configdpRun('kea list leases4'), true) ?? [];
$ifconfig = json_decode($backend->configdRun('interface list ifconfig'), true);
+ $mac_db = json_decode($backend->configdRun('interface list macdb'), true) ?? [];
$ifmap = [];
foreach (Config::getInstance()->object()->interfaces->children() as $if => $if_props) {
@@ -61,6 +62,8 @@ class Leases4Controller extends ApiControllerBase
$record['if_name'] = $ifmap[$record['if']]['key'];
$interfaces[$ifmap[$record['if']]['key']] = $ifmap[$record['if']]['descr'];
}
+ $mac = strtoupper(substr(str_replace(':', '', $record['hwaddr']), 0, 6));
+ $record['mac_info'] = isset($mac_db[$mac]) ? $mac_db[$mac] : '';
}
} else {
$records = [];
diff --git a/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt b/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
index 181f65bc6..2439b59d1 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
@@ -63,6 +63,13 @@
"overflowformatter": function (column, row) {
return '' + row[column.id] + '
'
},
+ "macformatter": function (column, row) {
+ let mac = '' + row.hwaddr + '';
+ if (row.mac_info != '') {
+ mac = mac + '
' + '' + row.mac_info + '';
+ }
+ return mac;
+ },
"timestamp": function (column, row) {
return moment.unix(row[column.id]).local().format('YYYY-MM-DD HH:mm:ss');
},
@@ -91,16 +98,15 @@
| {{ lang._('Interface') }} | -{{ lang._('IP Address') }} | -{{ lang._('MAC Address') }} | -{{ lang._('Lifetime') }} | -{{ lang._('Expire') }} | -{{ lang._('Hostname') }} | -||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ lang._('Interface') }} | +{{ lang._('IP Address') }} | +{{ lang._('MAC Address') }} | +{{ lang._('Lifetime') }} | +{{ lang._('Expire') }} | +{{ lang._('Hostname') }} | +