2009-07-15 12 views
5

私はWindowsにDWORDソケットを持っています。私はそれがインターネットに出て行く接続か、それがローカル接続であれ、何らかの形のlocalhostに接続しているかどうかを知る必要があります。ソケットが接続されているアドレスを取得する良い方法はありますか?または、接続がローカルであるかどうかを判断する良い方法はありますか?ソケットからIPアドレスを取得する方法Windowsで

+0

IPv6には注意が必要です。おそらくソケットを自分で作成していない可能性があります(それ以外の場所に作成されたソケットを扱っている可能性があります)。それがあなたのコントロールの外にあるので、IPv6を使うことができます。 – MSalters

答えて

5

getpeername()に電話してください。それを使用するのはかなり基本的なものです。sockaddrポインタと長さを渡して、データを埋め込みます。

接続がローカルかどうかを判断する限り、getaddrinfo()は利用可能なすべてのローカルアドレスのリストを提供します。 getpeername()の結果をローカルアドレスリストと比較します。

関連する問題