Unity中获取本机IP地址的方法

做OptiTrack局域网数据通信时,需要设置本地IP和动捕数据服务器IP,来实现获取动捕数据。由于局域网搭建时需要手动设置电脑IP,因此想到如果可以获取本机IP,服务器IP通常设置固定后不会更改,如此在同一局域网内的电脑上,作为客户端的程序就无需因本地IP不同而做独立发布。

测试过两种获取本地IP的方法,区别如下:

1、获取所有网络端口IP地址,需自行筛选,若电脑只有一个网络端口则可直接获取使用。

        foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
        {
            foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses)
            {
                if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    LocalAddress = ip.Address.ToString();
                }
            }
        }

 2、获取网络IP地址,这个方法局域网内不可用,手动设置的IP地址在这种方式中获取的结果为0.0.0.0,但自动分配IP的环境下可获取到IP地址,且通过命令提示符中查看IP,获取结果与查看结果一致。

        LocalAddress = Network.player.ipAddress;
        Debug.Log("LocalAddress:" + LocalAddress);
        

你可能感兴趣的:(Unity中获取本机IP地址的方法)