From 99409089b21c1248b64e9acdf4b8e61b904756e7 Mon Sep 17 00:00:00 2001 From: tsosunchia <59512455+tsosunchia@users.noreply.github.com> Date: Sat, 14 Oct 2023 21:53:34 +0800 Subject: [PATCH 1/2] update credit --- printer/basic.go | 65 ++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/printer/basic.go b/printer/basic.go index e0ceb66..1be72b9 100644 --- a/printer/basic.go +++ b/printer/basic.go @@ -23,45 +23,56 @@ func Version() { } func CopyRight() { - fmt.Fprintf(color.Output, "\n%s\n%s\n%s %s\n\n%s\n%s %s\n%s %s\n%s %s\n\n%s\n%s\n%s %s\n\n", + sponsor() + fmt.Fprintf(color.Output, "\n%s\n%s %s\n%s %s, %s, %s, %s\n%s %s\n\n", color.New(color.FgCyan, color.Bold).Sprintf("%s", "NextTrace CopyRight"), - color.New(color.FgGreen, color.Bold).Sprintf("%s", "NextTrace Project Creator"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Leo"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@leo.moe"), - color.New(color.FgGreen, color.Bold).Sprintf("%s", "NextTrace Project Maintainer"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Tso"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "tsosunchia@gmail.com"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Vincent"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@vincent.moe"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Leo"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@leo.moe"), - color.New(color.FgCyan, color.Bold).Sprintf("%s", "Special Acknowledgement List"), - color.New(color.FgGreen, color.Bold).Sprintf("%s", "NextTrace Major Contributor"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "zhshch"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "zhshch@athorx.com"), + //color.New(color.FgGreen, color.Bold).Sprintf("%s", "Contact Us"), + //color.New(color.FgWhite, color.Bold).Sprintf("%s", "Feedback Email:"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "nt@moeqing.com"), + //color.New(color.FgWhite, color.Bold).Sprintf("%s", "HomePage:"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "github.com/nxtrace"), + color.New(color.FgWhite, color.Bold).Sprintf("%s", "Creator:"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Leo"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@leo.moe"), + color.New(color.FgWhite, color.Bold).Sprintf("%s", "Core-Developer:"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Leo"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@leo.moe"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Vincent"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "i@vincent.moe"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "zhshch"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "zhshch@athorx.com"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Tso"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "tsosunchia@gmail.com"), + color.New(color.FgWhite, color.Bold).Sprintf("%s", "Maintainer:"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Tso"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "tsosunchia@gmail.com"), ) moeQingOrgCopyRight() - sponsor() //PluginCopyRight() } func moeQingOrgCopyRight() { - fmt.Fprintf(color.Output, "%s\n%s %s\n%s %s\n\n", - color.New(color.FgGreen, color.Bold).Sprintf("%s", "Supported by MoeQing Network"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "YekongTAT"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "yekongtat@gmail.com"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Haima"), - color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "haima@peers.cloud"), + fmt.Fprintf(color.Output, "%s\n%s %s, %s\n\n", + color.New(color.FgCyan, color.Bold).Sprintf("%s", "NextTrace Project NOC"), + color.New(color.FgWhite, color.Bold).Sprintf("%s", "MoeQing.io:"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "YekongTAT"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "yekongtat@gmail.com"), + color.New(color.FgHiBlue, color.Bold).Sprintf("%s", "Haima"), + //color.New(color.FgHiBlack, color.Bold).Sprintf("%s", "haima@peers.cloud"), ) } func sponsor() { - fmt.Fprintf(color.Output, "%s\n%s\n%s\n%s\n", - color.New(color.FgGreen, color.Bold).Sprintf("%s", "Sponsored by the following entities"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "DMIT.io"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Misaka.io"), - color.New(color.FgWhite, color.Bold).Sprintf("%s", "Skywolf.cloud"), + italic := "\x1b[3m%s\x1b[0m" + formatted := fmt.Sprintf(italic, "(Listed in no particular order)") + + fmt.Fprintf(color.Output, "%s\n%s\n%s\n%s\n%s\n", + color.New(color.FgCyan, color.Bold).Sprintf("%s", "NextTrace Sponsored by"), + color.New(color.FgHiYellow, color.Bold).Sprintf("%s", "· DMIT.io"), + color.New(color.FgHiYellow, color.Bold).Sprintf("%s", "· Misaka.io"), + color.New(color.FgHiYellow, color.Bold).Sprintf("%s", "· Skywolf.cloud"), + color.New(color.FgHiBlack, color.Bold).Sprintf("%s", formatted), ) } From d760e758100bba67de24703e0d18b2f708d76d7e Mon Sep 17 00:00:00 2001 From: tsosunchia <59512455+tsosunchia@users.noreply.github.com> Date: Fri, 20 Oct 2023 00:46:58 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix=20bug:=20=E5=BD=93=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E7=94=B1=E8=87=AA=E8=BA=AB=E5=8F=91=E5=87=BA=E7=9A=84?= =?UTF-8?q?DestinationUnreachable=E5=8C=85=E6=97=B6=E8=A7=86=E4=B8=BA?= =?UTF-8?q?=E6=9C=89=E6=95=88=E4=BF=A1=E6=81=AF=EF=BC=8C=E6=AD=A4=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E7=94=B1=20@XQZR=20=E6=8F=90=E5=87=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trace/icmp_ipv4.go | 9 +++++++++ trace/icmp_ipv6.go | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/trace/icmp_ipv4.go b/trace/icmp_ipv4.go index 7e1b86e..6e9a44a 100644 --- a/trace/icmp_ipv4.go +++ b/trace/icmp_ipv4.go @@ -164,6 +164,9 @@ func (t *ICMPTracer) listenICMP() { t.handleICMPMessage(msg, 0, rm.Body.(*icmp.TimeExceeded).Data, int(ttl)) case ipv4.ICMPTypeEchoReply: t.handleICMPMessage(msg, 1, rm.Body.(*icmp.Echo).Data, int(ttl)) + //unreachable + case ipv4.ICMPTypeDestinationUnreachable: + t.handleICMPMessage(msg, 2, rm.Body.(*icmp.DstUnreach).Data, int(ttl)) default: // log.Println("received icmp message of unknown type", rm.Type) } @@ -176,6 +179,12 @@ func (t *ICMPTracer) listenICMP() { } func (t *ICMPTracer) handleICMPMessage(msg ReceivedMessage, icmpType int8, data []byte, ttl int) { + if icmpType == 2 { + if t.DestIP.String() != msg.Peer.String() { + return + } + } + t.inflightRequestRWLock.RLock() defer t.inflightRequestRWLock.RUnlock() diff --git a/trace/icmp_ipv6.go b/trace/icmp_ipv6.go index 82cac1e..b0a5ea4 100644 --- a/trace/icmp_ipv6.go +++ b/trace/icmp_ipv6.go @@ -189,6 +189,8 @@ func (t *ICMPTracerv6) listenICMP() { t.handleICMPMessage(msg, 0, rm.Body.(*icmp.TimeExceeded).Data, int(ttl)) case ipv6.ICMPTypeEchoReply: t.handleICMPMessage(msg, 1, rm.Body.(*icmp.Echo).Data, int(ttl)) + case ipv6.ICMPTypeDestinationUnreachable: + t.handleICMPMessage(msg, 2, rm.Body.(*icmp.DstUnreach).Data, int(ttl)) default: // log.Println("received icmp message of unknown type", rm.Type) } @@ -232,6 +234,11 @@ func (t *ICMPTracerv6) listenICMP() { } func (t *ICMPTracerv6) handleICMPMessage(msg ReceivedMessage, icmpType int8, data []byte, ttl int) { + if icmpType == 2 { + if t.DestIP.String() != msg.Peer.String() { + return + } + } t.inflightRequestRWLock.RLock() defer t.inflightRequestRWLock.RUnlock()