Make gtcpip public for external use

This commit is contained in:
世界 2026-04-03 02:07:40 +08:00
parent f8e7794cc2
commit a9027729be
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
42 changed files with 45 additions and 57 deletions

35
gtcpip/header/netip.go Normal file
View file

@ -0,0 +1,35 @@
package header
import "net/netip"
func (b IPv4) SourceAddr() netip.Addr {
return netip.AddrFrom4([4]byte(b[srcAddr : srcAddr+IPv4AddressSize]))
}
func (b IPv4) DestinationAddr() netip.Addr {
return netip.AddrFrom4([4]byte(b[dstAddr : dstAddr+IPv4AddressSize]))
}
func (b IPv4) SetSourceAddr(addr netip.Addr) {
copy(b[srcAddr:srcAddr+IPv4AddressSize], addr.AsSlice())
}
func (b IPv4) SetDestinationAddr(addr netip.Addr) {
copy(b[dstAddr:dstAddr+IPv4AddressSize], addr.AsSlice())
}
func (b IPv6) SourceAddr() netip.Addr {
return netip.AddrFrom16([16]byte(b[v6SrcAddr:][:IPv6AddressSize]))
}
func (b IPv6) DestinationAddr() netip.Addr {
return netip.AddrFrom16([16]byte(b[v6DstAddr:][:IPv6AddressSize]))
}
func (b IPv6) SetSourceAddr(addr netip.Addr) {
copy(b[v6SrcAddr:][:IPv6AddressSize], addr.AsSlice())
}
func (b IPv6) SetDestinationAddr(addr netip.Addr) {
copy(b[v6DstAddr:][:IPv6AddressSize], addr.AsSlice())
}