mirror of
https://github.com/net-byte/go-gateway.git
synced 2024-04-21 12:21:40 +00:00
33 lines
706 B
Go
33 lines
706 B
Go
//go:build windows
|
|
// +build windows
|
|
|
|
package gateway
|
|
|
|
import (
|
|
"net"
|
|
"os/exec"
|
|
"syscall"
|
|
)
|
|
|
|
func discoverGatewayOSSpecificIPv4() (ip net.IP, err error) {
|
|
routeCmd := exec.Command("route", "print", "0.0.0.0")
|
|
routeCmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
|
output, err := routeCmd.CombinedOutput()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return parseWindowsGatewayIPv4(output)
|
|
}
|
|
|
|
func discoverGatewayOSSpecificIPv6() (ip net.IP, err error) {
|
|
routeCmd := exec.Command("route", "print", "-6", "::/0")
|
|
routeCmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
|
output, err := routeCmd.CombinedOutput()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return parseWindowsGatewayIPv6(output)
|
|
}
|