14

ソフトウェアが実行されている電話の IP アドレスを見つける必要があります。私はそれが簡単だと思っていたでしょうが、フォーラムを検索したところ、(信じられないほど) Windows Phone 7 にはこれに対する方法がないように思えます - しかし、これは Windows Phone 8 で変更されましたか? 任意の助けをいただければ幸いです。

4

3 に答える 3

16

はい、これは WP7 に必要なマルチキャスト ソリューションを使用せずに WP8 で可能になりました。携帯電話には複数のネットワーク インターフェイスがあることに注意してください (たとえば、私の WP8 エミュレーターには 3 つ)。

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;
}

HTH

于 2012-12-17T09:42:04.447 に答える
3

もちろん、電話の IP アドレスを見つける方法はあります。これを行う方法を説明する MSDN ブログのブログ記事は次のとおりです。Windows Phone Mango で自分の IP アドレスを見つける

Nokia Lumia 920 (Windows Phone 8) でテストしたところ、問題なく動作しました。ただし、マルチキャスト IP が使用されているため、これは WiFi でのみ機能します。

于 2012-12-07T23:56:19.613 に答える
0

Windows RT のコード

public static string GetIpAddress()
{
        var address = "";
        var icp = NetworkInformation.GetInternetConnectionProfile();

        if (icp != null && icp.NetworkAdapter != null)
        {
            var hostname =
                NetworkInformation.GetHostNames()
                    .SingleOrDefault(
                        hn =>
                        hn.IPInformation != null && hn.IPInformation.NetworkAdapter != null
                        && hn.IPInformation.NetworkAdapter.NetworkAdapterId
                        == icp.NetworkAdapter.NetworkAdapterId);

            if (hostname != null)
            {
                address = hostname.CanonicalName;
            }
        }
        return address;
}
于 2017-01-03T07:11:00.250 に答える