Go で特定のインターフェイス アドレスを使ってダイヤルできますか?
Go プログラミング言語は、ネットワーク操作のための広範な機能を提供します。特定のインターフェイス アドレスを使用して接続を確立します。ただし、これが現在の標準ライブラリで可能かどうかはすぐにはわかりません。
まず、InterfaceByName("interface_name") を使用して、名前でネットワーク インターフェイスを取得できます。その後、インターフェイスの Addrs() メソッドを使用して、そのインターフェイスに関連付けられたアドレスのリストを取得できます。ただし、これらのアドレスは、ネットマスク付きの IP アドレスを表す *net.IPNet タイプです。
このアドレスをダイヤルに使用するには、IP アドレスを抽出し、それを使用して新しい TCPAddr を作成する必要があります。その方法は次のとおりです。
ief, err := net.InterfaceByName("eth1") if err !=nil{ log.Fatal(err) } addrs, err := ief.Addrs() if err !=nil{ log.Fatal(err) } tcpAddr := &net.TCPAddr{ IP: addrs[0].(*net.IPNet).IP, }
TCPAddr を取得したら、新しいダイヤラを作成するときにそれをローカル アドレスとして使用できます。
d := net.Dialer{LocalAddr: tcpAddr}
このダイヤラを使用すると、指定されたインターフェイス アドレスを使用して接続を確立できます。以下に例を示します。
_, err = d.Dial("tcp", "google.com:80") if err != nil { log.Fatal(err) }
これらの手順に従うと、Go で特定のインターフェイス アドレスを使用して接続を正常にダイヤルできます。
以上がGo で特定のインターフェイス アドレスを使用してネットワーク接続にダイヤルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。