mirror of
				https://github.com/oneclickvirt/backtrace.git
				synced 2025-11-04 07:42:37 +08:00 
			
		
		
		
	feat: 尝试添加IPV6路由追踪
This commit is contained in:
		
							parent
							
								
									0c6b11883f
								
							
						
					
					
						commit
						7efc61cbe4
					
				
							
								
								
									
										30
									
								
								bk/trace_ipv6.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								bk/trace_ipv6.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package bk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"net"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"golang.org/x/net/icmp"
 | 
				
			||||||
 | 
						"golang.org/x/net/ipv6"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func newPacketV6(id uint16, dst net.IP, ttl int) []byte {
 | 
				
			||||||
 | 
						msg := icmp.Message{
 | 
				
			||||||
 | 
							Type: ipv6.ICMPTypeEchoRequest,
 | 
				
			||||||
 | 
							Body: &icmp.Echo{
 | 
				
			||||||
 | 
								ID:  int(id),
 | 
				
			||||||
 | 
								Seq: int(id),
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						p, _ := msg.Marshal(nil)
 | 
				
			||||||
 | 
						ip := &ipv6.Header{
 | 
				
			||||||
 | 
							Version:    ipv6.Version,
 | 
				
			||||||
 | 
							NextHeader: ProtocolIPv6ICMP,
 | 
				
			||||||
 | 
							HopLimit:   ttl,
 | 
				
			||||||
 | 
							Dst:        dst,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						buf, err := ip.Marshal()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return append(buf, p...)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user