go-conntrack
This is go-conntrack
and it is written in golang. It provides a C-binding free API to the conntrack subsystem of the Linux kernel.
Example
package main
import (
"fmt"
"github.com/florianl/go-conntrack"
)
func main() {
nfct, err := conntrack.Open(&conntrack.Config{})
if err != nil {
fmt.Println("could not create nfct:", err)
return
}
defer nfct.Close()
// Get all IPv4 entries of the expected table.
sessions, err := nfct.Dump(conntrack.Expected, conntrack.IPv4)
if err != nil {
fmt.Println("could not dump sessions:", err)
return
}
// Print out all expected sessions.
for _, session := range sessions {
fmt.Printf("%#v\n", session)
}
}
Requirements
- A version of Go that is supported by upstream