Initial import

This commit is contained in:
2025-10-10 10:05:13 +02:00
parent 3effc1597b
commit b96b6e7f8f
164 changed files with 5473 additions and 0 deletions

42
policy/input/net.go Normal file
View 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(),
}
}
}