static void InitializeBroadcastIPs()
    {
        //broadcastIPs = new List <IPAddress>();
        foreach (NetworkInterface iface in NetworkInterface.GetAllNetworkInterfaces())
        {
            //Debug.Log(iface.Description);
            foreach (IPAddressInformation ucastInfo in iface.GetIPProperties().UnicastAddresses)
            {
                if (IPAddress.IsLoopback(ucastInfo.Address) || ucastInfo.Address.AddressFamily == AddressFamily.InterNetworkV6)
                {
                    continue;
                }

                IPAddress mask            = IPAddress.Parse(ReturnSubnetmask(ucastInfo.Address.ToString()));
                byte[]    ipAdressBytes   = ucastInfo.Address.GetAddressBytes();
                byte[]    subnetMaskBytes = mask.GetAddressBytes();

                if (ipAdressBytes.Length != subnetMaskBytes.Length)
                {
                    continue;
                }

                var broadcast = new byte[ipAdressBytes.Length];
                for (int i = 0; i < broadcast.Length; i++)
                {
                    broadcast[i] = (byte)(ipAdressBytes[i] | ~(subnetMaskBytes[i]));
                }
                IPAddress broadcastIP = new IPAddress(broadcast);
                Debug.Log(ucastInfo.Address.AddressFamily.ToString() + "\n" + "\tIP       : " + ucastInfo.Address.ToString() + "\n" + "\tSubnet   : "
                          + mask.ToString() + "\n" + "\tBroadcast: " + (broadcastIP).ToString());
                NetworkConection newConnection = new NetworkConection();
                newConnection.broadcast = broadcastIP;
                newConnection.ip        = ucastInfo.Address;
                _interfaces.Add(newConnection);
            }
        }
    }
    static void InitializeBroadcastIPs()
    {
        //broadcastIPs = new List <IPAddress>();
        foreach (NetworkInterface iface in NetworkInterface.GetAllNetworkInterfaces())
        {
            //Debug.Log(iface.Description);
            foreach (IPAddressInformation ucastInfo in iface.GetIPProperties().UnicastAddresses)
            {
                if (IPAddress.IsLoopback(ucastInfo.Address) || ucastInfo.Address.AddressFamily == AddressFamily.InterNetworkV6)
                    continue;

                IPAddress mask = IPAddress.Parse(ReturnSubnetmask(ucastInfo.Address.ToString()));
                byte[] ipAdressBytes = ucastInfo.Address.GetAddressBytes();
                byte[] subnetMaskBytes = mask.GetAddressBytes();

                if (ipAdressBytes.Length != subnetMaskBytes.Length) continue;

                var broadcast = new byte[ipAdressBytes.Length];
                for (int i = 0; i < broadcast.Length; i++)
                {
                    broadcast[i] = (byte)(ipAdressBytes[i] | ~(subnetMaskBytes[i]));
                }
                IPAddress broadcastIP = new IPAddress(broadcast);
                Debug.Log(ucastInfo.Address.AddressFamily.ToString() + "\n" + "\tIP       : " + ucastInfo.Address.ToString()+"\n"+"\tSubnet   : "
                          + mask.ToString() + "\n" + "\tBroadcast: " + (broadcastIP).ToString());
                NetworkConection newConnection = new NetworkConection ();
                newConnection.broadcast = broadcastIP;
                newConnection.ip = ucastInfo.Address;
                _interfaces.Add(newConnection);
            }
        }
    }