//go:build linux package netdetect import ( "os" "os/exec" ) // DefaultRoutes returns the host's IPv4 default routes. It prefers the `ip` // command and falls back to reading /proc/net/route. func DefaultRoutes() ([]Route, error) { out, err := exec.Command("ip", "-4", "route", "show", "default").Output() if err == nil { if routes := parseIPRoute(string(out)); len(routes) > 0 { return routes, nil } } data, err := os.ReadFile("/proc/net/route") if err != nil { return nil, err } return parseProcNetRoute(string(data)), nil }