1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-04 23:40:26 +08:00

fix(lower): windows ip routing

This commit is contained in:
源文雨
2026-04-07 18:26:34 +08:00
parent 3f654deacb
commit b86a65819c

View File

@@ -3,17 +3,24 @@
package lower package lower
import "net" import (
"net"
"strconv"
)
func (n *NICIO) Up() { 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 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) 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 { for _, c := range n.cidrs {
ip, cidr, err := net.ParseCIDR(c) ip, cidr, err := net.ParseCIDR(c)
if err != nil { if err != nil {
panic(err) 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))
} }
} }