mirror of
https://github.com/netbirdio/netbird.git
synced 2025-07-22 16:44:26 +02:00
29 lines
561 B
Go
29 lines
561 B
Go
package wgaddr
|
|
|
|
import (
|
|
"fmt"
|
|
"net/netip"
|
|
)
|
|
|
|
// Address WireGuard parsed address
|
|
type Address struct {
|
|
IP netip.Addr
|
|
Network netip.Prefix
|
|
}
|
|
|
|
// ParseWGAddress parse a string ("1.2.3.4/24") address to WG Address
|
|
func ParseWGAddress(address string) (Address, error) {
|
|
prefix, err := netip.ParsePrefix(address)
|
|
if err != nil {
|
|
return Address{}, err
|
|
}
|
|
return Address{
|
|
IP: prefix.Addr().Unmap(),
|
|
Network: prefix.Masked(),
|
|
}, nil
|
|
}
|
|
|
|
func (addr Address) String() string {
|
|
return fmt.Sprintf("%s/%d", addr.IP.String(), addr.Network.Bits())
|
|
}
|