55 lines
899 B
Go
55 lines
899 B
Go
package commonbackend
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
)
|
|
|
|
func IPStringToIPBytes(ip string) ([]byte, error) {
|
|
sourceIP := net.ParseIP(ip)
|
|
ipBytes := sourceIP.To4()
|
|
|
|
if ipBytes == nil {
|
|
ipBytes = sourceIP.To16()
|
|
|
|
if ipBytes == nil {
|
|
return nil, fmt.Errorf("invalid IP address recieved")
|
|
}
|
|
}
|
|
|
|
return ipBytes, nil
|
|
}
|
|
|
|
func IPBytesToIPSafe(ip []byte) (net.IP, error) {
|
|
sourceIP := net.IP(ip)
|
|
ipBytes := sourceIP.To4()
|
|
|
|
if ipBytes != nil {
|
|
return ipBytes, nil
|
|
}
|
|
|
|
ipBytes = sourceIP.To16()
|
|
|
|
if ipBytes != nil {
|
|
return ipBytes, nil
|
|
}
|
|
|
|
return nil, fmt.Errorf("invalid IP address recieved")
|
|
}
|
|
|
|
func IPBytesToString(ip []byte) (string, error) {
|
|
sourceIP := net.IP(ip)
|
|
ipBytes := sourceIP.To4()
|
|
|
|
if ipBytes != nil {
|
|
return ipBytes.String(), nil
|
|
}
|
|
|
|
ipBytes = sourceIP.To16()
|
|
|
|
if ipBytes != nil {
|
|
return ipBytes.String(), nil
|
|
}
|
|
|
|
return "", fmt.Errorf("invalid IP address recieved")
|
|
}
|