ipaddress-go

module
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2024 License: Apache-2.0

README

ipaddress-go

Go library for handling IP addresses and subnets, both IPv4 and IPv6

IP address and network manipulation, CIDR, address and subnet operations, iterations, containment checks, IP to CIDR block lookup, longest prefix match, subnetting, spanning, merging, ranges, and address tries, with polymorphic code

View Project Page

View Godoc Go Reference

View Code Examples

View Benchmark Results

View List of Users

Version Notes
1.2.1 Requires Go 1.12 or higher
1.4.1 Requires Go 1.13 or higher
1.6.0 Requires Go 1.18 or higher

In your go.mod file:
require github.com/seancfoley/ipaddress-go v1.6.0

In your source file:
import "github.com/seancfoley/ipaddress-go/ipaddr"

Packaged as a Linux Fedora rpm and as a Linux Debian

Also available as a Java library from the IPAddress repository

Getting Started

starting with address or subnet strings

import "github.com/seancfoley/ipaddress-go/ipaddr"

ipv6AddrStr := ipaddr.NewIPAddressString("a:b:c:d::a:b/64")
if ipAddr, err := ipv6AddrStr.ToAddress(); err != nil {
	// err.Error() has validation error
} else {
	// use the address
}

...or avoid errors, checking for nil:

str := ipaddr.NewIPAddressString("a:b:c:d:e-f:f:1.2-3.3.4/64")
addr := str.GetAddress()
if addr != nil {
	// use address
}

starting with host name strings

hostStr := "[::1]"

host := ipaddr.NewHostName(hostStr)
err := host.Validate()
if err == nil {
	if host.IsAddress() {
		fmt.Println("address: " + host.AsAddress().String())
	} else {
		fmt.Println("host name: " + host.String())
	}
	// use host
} else {
	fmt.Println(err.Error())
}

Directories

Path Synopsis
IPAddress is a library for handling IP addresses and subnets, both IPv4 and IPv6.
IPAddress is a library for handling IP addresses and subnets, both IPv4 and IPv6.
addrstr
Package addrstr provides interfaces for specifying how to create specific strings from addresses and address sections, as well as builder types to construct instances of those interfaces.
Package addrstr provides interfaces for specifying how to create specific strings from addresses and address sections, as well as builder types to construct instances of those interfaces.
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL