diff --git a/conn.go b/conn.go index d217c1f..6ce6c6d 100644 --- a/conn.go +++ b/conn.go @@ -3,6 +3,7 @@ package main import ( "bufio" "io" + "log" "net" "time" ) @@ -79,3 +80,16 @@ func timedCopy(dst net.PacketConn, target net.Addr, src net.PacketConn, timeout } } } + +// OutboundIP returns preferred outbound ip of this machine +func OutboundIP() net.IP { + conn, err := net.Dial("udp", "8.8.8.8:80") + if err != nil { + log.Fatal(err) + } + defer conn.Close() + + localAddr := conn.LocalAddr().(*net.UDPAddr) + + return localAddr.IP +}