master
1package get
2
3import (
4 "fmt"
5 "net"
6
7 "github.com/libp2p/go-netroute"
8)
9
10// unix: `netstat -nr -f inet`
11// get iface-owned app: `ifconfig -v utun3 | grep "agent domain"`
12
13func getIface() (string, error) {
14 r, err := netroute.New()
15 if err != nil {
16 return "", fmt.Errorf("error initializing netroute: %w", err)
17 }
18
19 iface, _, _, err := r.Route(
20 net.IPv4(104, 16, 133, 229), // cloudflare
21 )
22 if err != nil {
23 return "", fmt.Errorf("error retrieving net route: %w", err)
24 }
25 //fmt.Printf("%v, %v, %v, %v\n", iface, gw, src, err)
26
27 return iface.Name, nil
28}
29
30func Iface() error {
31 iface, err := getIface()
32 if err != nil {
33 return err
34 }
35 fmt.Println(iface)
36 return nil
37}