私はCソケットを使ってクライアント/サーバプログラムを書いています。私は、サーバーがsockaddr_in.sin_addr.s_addrのINADDR_ANYを使用して、任意のネットワークインターフェイスでリッスンできることを指定しています。これは0.0.0.0のIPに相当します。サーバーがリッスンしている実際のIPを取得することは可能ですか? (例:192.168.1.100)CリスニングサーバのIPを取得する
答えて
私は最終的にsolution that worksを見つけることができました。
を編集してください:リンクは死んでいますので、Internet Archive linkをご覧ください。
私にとっては、他の人にも役立つことを願っています。
IPv6で動作しないため、IPv6のサポートは必要ないと思います。 –
いいえ、私はしません。しかし、あなたがなぜそれが適切でないのかを説明すれば、そうする人を助けるかもしれません。私は、使用される関数呼び出しにはIPv6の同等物があると思います。 – Gigi
'getaddrinfo'関数([linux docs](http://linux.about.com/library/cmd/blcmdl3_getaddrinfo.htm)、[Windows文書](http://msdn.microsoft.com/en-us/)は、ライブラリ/ windows/desktop/ms738520(v = vs.85).aspx))はIPv6対応であり、同じ機能を実行します。 –
リスニングソケットをINADDR_ANY
にバインドすると、ソケットは使用可能なすべてのローカルIPをリッスンします。ソケットからリッスンしているIPを特定する方法はありません。その情報が必要な場合は、ローカルIPを別々に列挙しなければなりません(その場合は、pre-acceptバインディングの詳細を調べる必要がある場合は、それぞれのIPを個別のソケットに個別にbind()
個だけ渡すことができます)。ただし、accept()
が確立したクライアント接続を返すと、受け入れられたソケットでgetsockname()
を使用して、特定のIPが接続を受け入れたことを知ることができます。
- 1. リモートアドレス/ IP-Cバークレーソケットを取得する
- 2. C#のイーサネットインターフェイスのローカルIPアドレスを取得
- 3. c#サブネットネットワークのIPアドレスを取得
- 4. CプログラムのLinux IPスタックからIPヘッダフィールドの値を取得するための
- 5. AzureでクライアントのIPアドレスを取得する方法C#?
- 6. IPカメラのストリームをC#に取得する方法は?
- 7. C#のFTPリクエストからIPアドレスを取得する方法
- 8. POSIX Cで独自の外部IPアドレスを取得する
- 9. Goでリスニングサーバを停止するには
- 10. 取得IPアドレス
- 11. 取得IPアドレス
- 12. IPアドレスを取得
- 13. IPアドレスの取得
- 14. C#でIP範囲を取得するには?
- 15. C#でIPアドレスを取得するには?
- 16. UDP接続からクライアントIPを取得するC#
- 17. Cソケットプログラミング:getaddrinfo()とバインドしてデバイスIPサーバーを取得する
- 18. C++ソケットポインタから宛先IPを取得する方法
- 19. IPアドレスからホストを取得するC
- 20. ローカルIPとサブネットマスクを取得するWindows UWP C++コード
- 21. C#、TcpClientからIPアドレスを取得する方法は?
- 22. node.jsのIPのISPを取得する
- 23. サーバマシンのIPアドレスを取得する
- 24. ECSコンテナのIPアドレスを取得する
- 25. ARM - VMSSのプライベートIPを取得する
- 26. エミュレータのシステムIPアドレスを取得する
- 27. 私のIPアドレスを取得する
- 28. Android - ホットスポットホストのIPアドレスを取得する
- 29. Heroku dynosのIPを取得する
接続が確立される前または後でか。サーバーが複数のアドレスでリッスンする可能性があります。 – blueshift
の前に。私の場合、私は1つのIPだけを持っています。ちょうど私はシステムが決定するようにしています。しかし、私はまだそれが何を決定するか知りたい。 – Gigi
サーバは利用可能なすべての*インタフェースをリッスンします。単一のインターフェースでも複数のIPアドレスを持つことができます。 –