Initial import
This commit is contained in:
42
policy/input/net.go
Normal file
42
policy/input/net.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package input
|
||||
|
||||
import (
|
||||
"net"
|
||||
)
|
||||
|
||||
// Addr represents a [net.Addr].
|
||||
type Addr struct {
|
||||
Network string `json:"network"` // Type of address.
|
||||
IP string `json:"ip"` // IP address.
|
||||
Port int `json:"port,omitempty"` // Port (if any).
|
||||
}
|
||||
|
||||
func NewAddr(addr net.Addr) *Addr {
|
||||
if addr == nil {
|
||||
return nil
|
||||
}
|
||||
switch addr := addr.(type) {
|
||||
case *net.IPAddr:
|
||||
return &Addr{
|
||||
Network: addr.Network(),
|
||||
IP: addr.IP.String(),
|
||||
}
|
||||
case *net.TCPAddr:
|
||||
return &Addr{
|
||||
Network: addr.Network(),
|
||||
IP: addr.IP.String(),
|
||||
Port: addr.Port,
|
||||
}
|
||||
case *net.UDPAddr:
|
||||
return &Addr{
|
||||
Network: addr.Network(),
|
||||
IP: addr.IP.String(),
|
||||
Port: addr.Port,
|
||||
}
|
||||
default:
|
||||
return &Addr{
|
||||
Network: addr.Network(),
|
||||
IP: addr.String(),
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user