yuhua
2015-01-22 15:29:36 +08:00
ief, err := net.InterfaceByName(netInterface)
if err != nil {
fmt.Println(err)
}
addrs, err := ief.Addrs()
if err != nil {
fmt.Println(err)
}
fmt.Println(addrs[0])
tcpAddr := &net.TCPAddr{
IP: addrs[0].(*net.IPNet).IP,
}
fmt.Println(tcpAddr)
d := net.Dialer{LocalAddr: tcpAddr}
conn, err := d.Dial("tcp", addr)
if err != nil {
fmt.Println(err)
return nil, err
}
我试过了,貌似这样不行。一定要通过底层是setsockopt的方法
同样情况下python使用s.setsockopt(socket.SOL_SOCKET, 25, "ppp0"+'\0')通过了测试