Windows 8 WinRT/Metroアプリから実際のローカルIPアドレス(ループバックアドレスではない)を知る必要があります。私にはこれが必要な理由がいくつかあります。最も簡単なのは、アプリのUIで「あなたのローカルネットワークのIPアドレスは:[コードから照会されたIP]」のようなテキストを表示したいということです。ローカルIPアドレスの照会
また、追加のネットワーク通信用にアドレスを使用します。これらの通信は完全に有効です。なぜなら、私がコントロールパネルのIPアドレスを見て、それをアプリケーションにハードコードしていればすべて動作するからです。ダイアログでユーザーにアドレスを見て、手動で入力するように頼むことは、私が本当に避けたいものです。
プログラムでアドレスを取得するのは複雑な作業ではないと思いますが、検索エンジンとStackOverflowのスキルは空になります。
この時点で、私は自分自身の要求を聞き取り、そのアドレスを抽出するためにUDPブロードキャスト/リッスンループを行うことを検討し始めていますが、実際はハッキークルージュのようです。そこに私を連れてくる新しいWinRTのどこかにAPIがありますか?
私は「WinRTのアプリを述べた。Dns.GetHostEntry
またはNetworkInterface.GetAllInterfaces()
のような典型的なメカニズムが仕事に行くされていないことに注意してください。
誰かがローカルネットワークIPアドレスをネットワークデバイスに割り当てた場合、Windowsはそのインターフェイスのみを認識します(完全に有効です)。あなたは正確にIPアドレスを使って何をしようとしていますか? UDPブロードキャスト/リッスンを行うことはできませんが、インタフェースが知っているIPアドレスは、そのネットワークの外部では有効ではないローカルネットワークアドレスが最も頻繁に使用されます。 –
http://msdn.microsoft.com/en-us/library/windows/apps/hh454046(v=vs.85).aspxを見てください。 –
@Ramhound:私は何を見ているべきかわかりません。私がConsumer PreviewとVS11 Betaで見られる振る舞いとはまったく一致しません。例えば、ドキュメント 'NetworkIntrface.GetAllNetworkInterfaces()'は動作するはずですが、存在しません。 – ctacke