5

私はWindows Phone 7.1アプリを構築しています。電話が Wi-Fi に接続されているかどうかを確認する必要があります。接続されている場合は、ローカル ネットワーク内の現在の IP は何ですか (つまり、このような 192.168.0.100)。私はしばらくの間、これらの情報を見つけようとしてきました。助けてください。

次のコードを使用して、コンソール アプリでローカル IP を取得できました。

public void ScanIP()
{                
    IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (IPAddress ip in host.AddressList)
    {
        if (ip.AddressFamily == AddressFamily.InterNetwork)
        {
            String localIP = ip.ToString();
            Console.WriteLine(localIP);                        
        }
    }

    Console.ReadKey();
}

ただし、windows mobile 7 アプリでも同様のことを行う必要があります。何か案が ?共有してください。

4

2 に答える 2

2

マルチキャストを実行し、応答をリッスンします。マルチキャスト メッセージを識別したら、送信者 (自分自身) の IP を取得できます。UdpAnySourceMulticastClientを使用してマルチキャストを実行できます。Wi-Fi ネットワークに接続していない場合は、EndJoinGroup 呼び出しでソケット エラーが発生します。例外を処理し、wifi ネットワークにいないことを示す特定の値を渡す必要があります。

詳細については、Andy Pennell によるこのブログ投稿を参照してください。

于 2014-03-23T13:18:31.313 に答える
0

それはあなたに電話のIPアドレスを提供します...

  public static IPAddress Find()
    {
        List<string> ipAddresses = new List<string>();

        var hostnames = NetworkInformation.GetHostNames();
        foreach (var hn in hostnames)
        {
            if (hn.IPInformation != null)
            {
                string ipAddress = hn.DisplayName;
                ipAddresses.Add(ipAddress);
            }
        }

        IPAddress address = IPAddress.Parse(ipAddresses[0]);
        return address;
    }
于 2013-07-18T07:13:32.757 に答える