fix(snmp): OCTET STRING из 6 байт показывать как MAC (aa:bb:...), не 0x...
Made-with: Cursor
This commit is contained in:
@@ -203,8 +203,8 @@ func probeSNMPAndLLDP(ip, community string, checkedAt time.Time, timeoutMS int)
|
||||
return out, probeLLDP(client, ip, checkedAt)
|
||||
}
|
||||
|
||||
func snmpValueToString(v any) string {
|
||||
if b, ok := v.([]byte); ok {
|
||||
// snmpBytesToDisplay строка для OCTET STRING SNMP: UTF-8 текст, иначе MAC (6 байт) или 0x+hex.
|
||||
func snmpBytesToDisplay(b []byte) string {
|
||||
if len(b) == 0 {
|
||||
return ""
|
||||
}
|
||||
@@ -214,9 +214,17 @@ func snmpValueToString(v any) string {
|
||||
return s
|
||||
}
|
||||
}
|
||||
// Chassis ID / port ID в LLDP часто приходят как OCTET STRING (MAC и т.д.) — не UTF-8
|
||||
// LLDP chassis/port id часто — MAC из 6 байт (не UTF-8).
|
||||
if len(b) == 6 {
|
||||
return fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x", b[0], b[1], b[2], b[3], b[4], b[5])
|
||||
}
|
||||
return "0x" + hex.EncodeToString(b)
|
||||
}
|
||||
|
||||
func snmpValueToString(v any) string {
|
||||
if b, ok := v.([]byte); ok {
|
||||
return snmpBytesToDisplay(b)
|
||||
}
|
||||
return strings.TrimSpace(fmt.Sprint(v))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user