1
我知道我可以使用net.DialTimeout來檢查主機是否可訪問。但是,使用這種方法,我不能指定接口或拿回接口與主機達成的,據我所知檢查主機是否可以在特定的網絡接口上訪問
我期待坪-I標誌的功能,如
平 - 我的eth0 www.google.se
,但寧願不訴諸exec.Command保持平臺的兼容性
我知道我可以使用net.DialTimeout來檢查主機是否可訪問。但是,使用這種方法,我不能指定接口或拿回接口與主機達成的,據我所知檢查主機是否可以在特定的網絡接口上訪問
我期待坪-I標誌的功能,如
平 - 我的eth0 www.google.se
,但寧願不訴諸exec.Command保持平臺的兼容性
您可以使用interfaceByName
方法提到here。我只是很快把示例代碼
func main() {
eth0, err := net.InterfaceByName("eth0")
if err != nil {
fmt.Println(err)
}
adds, err := eth0.Addrs()
if err != nil {
fmt.Println(err)
}
tcpAddr := &net.TCPAddr{
IP: adds[0].(*net.IPNet).IP,
}
d := net.Dialer{LocalAddr: tcpAddr, Timeout: time.Second * 60}
_, err = d.Dial("tcp", "www.google.se")
if err != nil {
fmt.Println(err)
}
}