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

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

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

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

       foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
            {
                NetworkInterfaceType _type1 = NetworkInterfaceType.Wireless80211;
                NetworkInterfaceType _type2 = NetworkInterfaceType.Ethernet;
                if ((item.NetworkInterfaceType == _type1 || item.NetworkInterfaceType == _type2) && item.OperationalStatus == OperationalStatus.Up)
                {
                    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);
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值