mirror of
https://github.com/nxtrace/NTrace-core.git
synced 2025-08-12 06:26:39 +00:00
可显示MPLS LABEL
This commit is contained in:
@@ -182,18 +182,15 @@ func (t *ICMPTracer) handleICMPMessage(msg ReceivedMessage, icmpType int8, data
|
||||
extensionBody := data[extensionOffset:]
|
||||
|
||||
if len(extensionBody) >= 8 && len(extensionBody)%8 == 0 {
|
||||
log.Println("ICMP Multi-Part Extensions detected for TTL:", ttl)
|
||||
//TODO: Parse MPLS extensions
|
||||
//for i := 0; i < len(extensionBody); i += 4 {
|
||||
// labelData := binary.BigEndian.Uint32(extensionBody[i : i+4])
|
||||
//
|
||||
// label := (labelData & 0xFFFFF000) >> 12
|
||||
// tc := (labelData & 0x00000E00) >> 9
|
||||
// s := (labelData & 0x00000100) >> 8
|
||||
// mplsTTL := labelData & 0x000000FF
|
||||
//
|
||||
// log.Printf("MPLS for TTL %d: Lbl %d TC %d S %d TTL %d\n", ttl, label, tc, s, mplsTTL)
|
||||
//}
|
||||
//log.Println("ICMP Multi-Part Extensions detected for TTL:", ttl)
|
||||
//这里感觉会有问题,能力所限先这样吧,等有缘人来改
|
||||
tmp := fmt.Sprintf("%x", msg.Msg[:*msg.N])
|
||||
substring := tmp[len(tmp)-7 : len(tmp)-3]
|
||||
label, err := strconv.ParseInt(substring, 16, 32)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
log.Printf("MPLS for TTL %d: Lbl %d\n", ttl, label)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user