You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829
  1. package irc
  2. import (
  3. "net"
  4. "strings"
  5. )
  6. func IPString(addr net.Addr) Name {
  7. addrStr := addr.String()
  8. ipaddr, _, err := net.SplitHostPort(addrStr)
  9. if err != nil {
  10. return Name(addrStr)
  11. }
  12. return Name(ipaddr)
  13. }
  14. func AddrLookupHostname(addr net.Addr) Name {
  15. return LookupHostname(IPString(addr))
  16. }
  17. func LookupHostname(addr Name) Name {
  18. names, err := net.LookupAddr(addr.String())
  19. if err != nil {
  20. return Name(addr)
  21. }
  22. hostname := strings.TrimSuffix(names[0], ".")
  23. return Name(hostname)
  24. }