Go で特定のネットワーク インターフェイス アドレスを使用してダイヤルする方法は?

DDD
リリース: 2024-11-26 00:59:10
オリジナル
809 人が閲覧しました

How to Dial with a Specific Network Interface Address in Go?

Go での特定のネットワーク インターフェイス アドレスを使用したダイヤル

ネットワークの領域では、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート