ネットワークの領域では、Go はシステム リソースへの低レベルのアクセスを提供することを目的としています。そのようなタスクの 1 つは、特定のネットワーク インターフェイス アドレスを使用して接続を確立する機能です。
これを実現するために、Go 標準ライブラリは、インターフェイスを名前 (例: "eth1") で取得する InterfaceByName 関数を提供します。ただし、返されたインターフェイスの Addrs メソッドから送信元アドレスを抽出すると、アドレスとネットマスクの両方をカプセル化する *net.IPnet タイプが生成されます。
このアドレスをダイヤルに使用するには、それを *net に変換する必要があります。 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 を使用すると、 Dialer の LocalAddr フィールド:
d := net.Dialer{LocalAddr: tcpAddr}
ローカル アドレスを適切に設定すると、目的のネットワーク インターフェイス アドレスを使用して接続を確立でき、ネットワーク トラフィックが目的のインターフェイスを介してルーティングされるようになります。
以上がGo で特定のネットワーク インターフェイス アドレスを使用してダイヤルする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。