repositorypackage
0.0.0-20240813095908-26f226d9ed84
Repository: https://github.com/exsver/go-ipset.git
Documentation: pkg.go.dev
# README
go-ipset
Go bindings for ipset
Examples
Create new Ipset
package main
import (
"log"
"os"
"github.com/exsver/go-ipset"
)
// !!! Requires root privileges
func main() {
// Create config: path to ipset bin and name of set.
config, err := ipset.NewConfig("/usr/sbin/ipset", "CreateTest")
if err != nil {
log.Fatal(err)
}
// Optional: Set debug logger
config.SetLogger(log.New(os.Stdout, "Debug: ", 0))
// Prepare options
createOptions := ipset.CreateOptions{
Type: "hash:net",
Counters: false,
Comment: false,
}
// Exec ipset
err = config.Create(&createOptions)
if err != nil {
log.Fatal(err)
}
}
Add Entry to existing ipset
package main
import (
"log"
"os"
"github.com/exsver/go-ipset"
)
// !!! Requires root privileges
//
// Create ipset
// ipset create AddTest hash:net family inet
func main() {
// Create config: path to ipset bin and name of set.
config, err := ipset.NewConfig("/usr/sbin/ipset", "AddTest")
if err != nil {
log.Fatal(err)
}
// Optional: Set debug logger
config.SetLogger(log.New(os.Stdout, "Debug: ", 0))
// Prepare entry
entry := ipset.Entry{
Address: "192.168.1.10/32",
}
// Exec ipset
err = config.Add(&entry)
if err != nil {
log.Fatal(err)
}
}
Delete entry from ipset
package main
import (
"log"
"os"
"github.com/exsver/go-ipset"
)
// !!! Requires root privileges
//
// Create and fill new ipset
// ipset create DelTest hash:net family inet
// ipset add DelTest 10.0.0.1
// ipset add DelTest 10.0.1.0/24
func main() {
// Create config: path to ipset bin and name of set.
config, err := ipset.NewConfig("/usr/sbin/ipset", "DelTest")
if err != nil {
log.Fatal(err)
}
// Optional: Set debug logger
config.SetLogger(log.New(os.Stdout, "Debug: ", 0))
// Del entry from ipset
err = config.Del("10.0.0.1")
if err != nil {
log.Fatal(err)
}
}
Flush ipset
package main
import (
"log"
"os"
"github.com/exsver/go-ipset"
)
// !!! Requires root privileges
//
// Create and fill new ipset
// ipset create FlushTest hash:net family inet
// ipset add FlushTest 10.10.10.10
// ipset add FlushTest 192.168.1.0/24
func main() {
// Create config: path to ipset bin and name of set.
config, err := ipset.NewConfig("/usr/sbin/ipset", "FlushTest")
if err != nil {
log.Fatal(err)
}
// Optional: Set debug logger
config.SetLogger(log.New(os.Stdout, "Debug: ", 0))
// Flush ipset
err = config.Flush()
if err != nil {
log.Fatal(err)
}
}