littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

Unityで自分のIPアドレスを取得する(iOS/UWP対応)

Unityで自分のIPアドレスを取得したい。 いろんな情報が載っていたのですが、iOSでは取れなかったりはまりました。 結果、以下の方法で取れました。

using System.Net.Sockets;//必要です。
using System.Net;//これもいるかもしれない

(...)

public static IPAddress myAddr = IPAddress.Parse (UnityEngine.Network.player.ipAddress);

(...)

iOSとWebPlayerで確認済み。 出来ちゃえば簡単なんですが・・

UWPにも対応するならこんな感じ

using UnityEngine;
using System.Net;
using System.Net.NetworkInformation;
using System.Linq;
using System.Collections;

#if NETFX_CORE
using Windows.Networking;
using Windows.Networking.Connectivity;
#endif

public class NetworkUtils : MonoBehaviour {

    public static string GetMyIPAddress(){

#if !NETFX_CORE
        return UnityEngine.Network.player.ipAddress;
#else
       string ip = null;
        foreach (HostName localHostName in NetworkInformation.GetHostNames())
        {
            if (localHostName.IPInformation != null)
            {
                if (localHostName.Type == HostNameType.Ipv4)
                {
                    ip = localHostName.ToString();
                    break;
                }
            }
        }
        return ip;

#endif
    }
}