12345678910111213141516171819202122232425262728293031 |
- package main
- import (
- "fmt"
- "net"
- "runtime"
- "github.com/vishvananda/netns"
- )
- func main() {
- // Lock the OS Thread so we don't accidentally switch namespaces
- runtime.LockOSThread()
- defer runtime.UnlockOSThread()
- // Save the current network namespace
- origns, _ := netns.Get()
- defer origns.Close()
- // Create a new network namespace
- netns.Set
- newns, _ := netns.New()
- defer newns.Close()
- // Do something with the network namespace
- ifaces, _ := net.Interfaces()
- fmt.Printf("Interfaces: %v\n", ifaces)
- // Switch back to the original namespace
- netns.Set(origns)
- }
|