Skip to content

c-binding free API for golang to communicate with the conntrack subsystem

License

Notifications You must be signed in to change notification settings

florianl/go-conntrack

Repository files navigation

go-conntrack PkgGoDev Go Report Card Go

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