util.go 583 B

123456789101112131415161718192021222324252627282930313233
  1. package util
  2. import (
  3. "log"
  4. "net"
  5. "net/netip"
  6. )
  7. // addrToIP attempts to extract a net.IP from a net.Addr
  8. func AddrToIP(addr net.Addr) net.IP {
  9. switch v := addr.(type) {
  10. case *net.TCPAddr:
  11. return v.IP
  12. case *net.UDPAddr:
  13. return v.IP
  14. case *net.IPAddr:
  15. return v.IP
  16. default:
  17. // Handle other potential net.Addr implementations or return nil
  18. return nil
  19. }
  20. }
  21. func StrToIP(input string) net.IP {
  22. addrPort, err := netip.ParseAddrPort(input)
  23. if err != nil {
  24. log.Println("[netip.ParseAddrPort ERROR]", err)
  25. return nil
  26. }
  27. ip := addrPort.Addr()
  28. return ip.AsSlice()
  29. }