diff --git a/lower/tun_windows.go b/lower/tun_windows.go index 919d4c1..335f129 100644 --- a/lower/tun_windows.go +++ b/lower/tun_windows.go @@ -3,17 +3,24 @@ package lower -import "net" +import ( + "net" + "strconv" +) func (n *NICIO) Up() { execute("cmd", "/c", "netsh interface ip set address name=\""+n.ifce.Name()+"\" source=static addr=\""+n.ip.String()+"\" mask=\""+(net.IP)(n.subnet.Mask).String()+"\" gateway=none") execute("cmd", "/c", "netsh interface ipv4 set subinterface \""+n.ifce.Name()+"\" mtu="+n.mtu) + iface, err := net.InterfaceByName(n.ifce.Name()) + if err != nil { + panic(err) + } for _, c := range n.cidrs { ip, cidr, err := net.ParseCIDR(c) if err != nil { panic(err) } - execute("cmd", "/c", "route ADD "+ip.String()+" MASK "+(net.IP)(cidr.Mask).String()+" "+n.ip.String()) + execute("cmd", "/c", "route ADD "+ip.String()+" MASK "+(net.IP)(cidr.Mask).String()+" "+n.ip.String()+" IF "+strconv.Itoa(iface.Index)) } }