https://github.com/m7shapan/cidr
get more IP details from CIDR range
https://github.com/m7shapan/cidr
cidr cidr-range go golang ip
Last synced: 5 months ago
JSON representation
get more IP details from CIDR range
- Host: GitHub
- URL: https://github.com/m7shapan/cidr
- Owner: m7shapan
- License: mit
- Created: 2020-04-25T20:16:09.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-27T12:48:41.000Z (about 6 years ago)
- Last Synced: 2024-06-18T23:15:18.402Z (about 2 years ago)
- Topics: cidr, cidr-range, go, golang, ip
- Language: Go
- Homepage:
- Size: 4.88 KB
- Stars: 27
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CIDR (Classless inter-domain routing)
This Package converts IP CIDR to range and return First IP, Last IP, First IP decimal, Last IP decimal and Total Host count for IPv4 and IPv6
## Install
`go get -u github.com/m7shapan/cidr`
## How to use
See [the GoDoc](https://pkg.go.dev/github.com/m7shapan/cidr)
```go
package main
import (
"fmt"
"log"
"github.com/m7shapan/cidr"
)
func main() {
p, err := cidr.ParseCIDR("1.0.0.0/24")
if err != nil {
log.Fatal(err)
}
fmt.Println("First IP:", p.FirstIP)
if p.IsIPv4 {
fmt.Println("First IP (Decimal):", p.FirstIPv4())
} else {
fmt.Println("First IP (Decimal):", p.FirstIPv6())
}
fmt.Println("Last IP:", p.LastIP)
if p.IsIPv4 {
fmt.Println("Last IP (Decimal):", p.LastIPv4())
} else {
fmt.Println("Last IP (Decimal):", p.LastIPv6())
}
if p.IsIPv4 {
fmt.Println("Total Host:", p.HostCountIPv4())
} else {
fmt.Println("Total Host:", p.HostCountIPv6())
}
// First IP: 1.0.0.0
// First IP (Decimal): 16777216
// Last IP: 1.0.0.255
// Last IP (Decimal): 16777471
// Total Host: 256
ip := net.ParseIP("1.0.0.0")
fmt.Println(IPv4tod(ip)) // 16777216
ip := net.ParseIP("2001:4860:4860::8888")
fmt.Println(IPv6tod(ip)) // 42541956123769884636017138956568135816
var i uint32 = 16777216
fmt.Println(DtoIPv4(i)) // 1.0.0.0
b := new(big.Int)
b.SetString("42541956123769884636017138956568135816", 10)
fmt.Println(DtoIPv6(b)) // 2001:4860:4860::8888
}
```
## Package usage for SEO
- get ip from ip range
- convert ip range to ip
- golang convert ip range to decimal
- How to get first/last IP address of CIDR
- Convert IP version 6 address to integer or decimal number
- IPv4 to IP Decimal Conversion
- ipv4 to decimal golang