mirror of
https://github.com/fumiama/WireGold.git
synced 2026-06-06 16:30:27 +08:00
35 lines
968 B
Go
35 lines
968 B
Go
//go:build windows
|
|
// +build windows
|
|
|
|
package lower
|
|
|
|
import "net"
|
|
|
|
func (n *NIC) Up() {
|
|
// execute("netsh", "interface", "set", "interface", n.ifce.Name(), "enabled")
|
|
_, ipn, err := net.ParseCIDR(n.subnet)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
execute("cmd", "/c", "netsh interface ip set address name=\""+n.ifce.Name()+"\" source=static addr=\""+n.ip+"\" mask=\""+(net.IP)(ipn.Mask).String()+"\" gateway=none")
|
|
execute("cmd", "/c", "netsh interface ipv4 set subinterface \""+n.ifce.Name()+"\" mtu="+n.mtu)
|
|
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)
|
|
}
|
|
}
|
|
|
|
func (n *NIC) Down() {
|
|
// execute("netsh", "interface", "set", "interface", n.ifce.Name(), "disabled")
|
|
for _, c := range n.cidrs {
|
|
ip, _, err := net.ParseCIDR(c)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
execute("cmd", "/c", "route DELETE "+ip.String())
|
|
}
|
|
}
|