2011-06-30 13 views
1

クライアントシステムに複数のネットワークカードがあると(複数のIPアドレスがあるように)、C#でサーバとの通信に使用されているクライアントIPを知る方法はありますか? プライベートIP(パブリックIPではなく)を取得したいと考えています。C#を使用して複数のネットワークカードのどれが使用中であるかをどのように知ることができますか?

        OR 

詳細を読むために我慢してください...

は私が通信に使用されているカードを知ることができますどのように、私は私のPCに接続された複数のネットワークカードを持っていると仮定します。たとえば、私が使用している場合

ping 192.168.x.xxx 

どのカード(どのIPアドレス)が通信に使用されているか知りたいと思います。

コマンド

netstat 

アクティブな接続を教えます。私はアクティブな接続に興味はありませんが、次の接続に使用するカードを知りたいと思います。つまり、pingを使用する場合、どのカード(またはIPアドレス)が使用されますか?

C#を使用して同じIPアドレスを取得するにはどうすればよいですか(エンドポイントIPアドレスを必要とするWCFで何かしたいのですから)?

例えば、私は、クエリの参照が https://superuser.com/questions/304372/how-can-i-tell-which-of-multiple-network-cards-is-in-use

...で発見することができ、次の

net.tcp:// + LocalIP + ":" + ListeningPort + "/Service/ep1; 

を作成する(ListeningPortなど)(LocalIPなど)IPとポートを使用したいです

+0

ルーティングテーブルの情報は必要ですか? [これはAPIの可能性があります](http://msdn.microsoft.com/en-us/library/aa374019.aspx)が必要です。 – Rup

+0

接続が開いたら、どちらかの端のIPアドレスを問い合わせることができます。物理的なインターフェースの詳細ではなく、興味のあるIPアドレスのようです。 –

答えて

0

Socketを使用してリモートホストに接続し、Bindメソッドを使用して特定のIPアドレスを設定できます。

関連する問題