ip.go 655 B

12345678910111213141516171819202122232425262728
  1. package ip
  2. import (
  3. "encoding/binary"
  4. "net"
  5. )
  6. // isUp Interface is up
  7. func isUp(v net.Flags) bool {
  8. return v&net.FlagUp == net.FlagUp
  9. }
  10. // ToLong Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
  11. func ToLong(ipAddress string) uint32 {
  12. ip := net.ParseIP(ipAddress)
  13. if ip == nil {
  14. return 0
  15. }
  16. return binary.BigEndian.Uint32(ip.To4())
  17. }
  18. // FromLong Converts a long integer address into a string in (IPv4) Internet standard dotted format
  19. func FromLong(properAddress uint32) string {
  20. ipByte := make([]byte, 4)
  21. binary.BigEndian.PutUint32(ipByte, properAddress)
  22. ip := net.IP(ipByte)
  23. return ip.String()
  24. }