/// <summary>
        /// Find the ip which let the 2 pcs communicate to each other
        /// </summary>
        /// <param name="ipCsv">A CSV file that contain the state of the machine, his name and his ips and masks</param>
        /// <returns></returns>
        private static string FindMatchingNetwork(string ipCsv)
        {
            List <List <IPAddress> > ipsAndMasks              = InterfaceFinder.Find();
            List <IPAddress>         NetAddresses             = new List <IPAddress>();
            List <IPAddress>         otherMachineNetAddresses = new List <IPAddress>();

            for (int i = 0; i < ipsAndMasks.Count; i++)
            {
                NetAddresses.Add(IPCalculator.NetworkCalculator(ipsAndMasks[i][0], ipsAndMasks[i][1]));
            }
            string[]  data         = ipCsv.Split(';');
            string    otherPcName  = data[1];
            bool      findNetIp    = false;
            IPAddress foundedNetIp = IPAddress.Any;

            for (int i = 2; i < data.Length; i += 2)
            {
                IPAddress NetIp = IPCalculator.NetworkCalculator(IPAddress.Parse(data[i]), IPAddress.Parse(data[i + 1]));
                for (int j = 0; j < NetAddresses.Count; j++)
                {
                    if (NetIp.Equals(NetAddresses[j]))
                    {
                        findNetIp    = true;
                        foundedNetIp = IPAddress.Parse(data[i]);
                        break;
                    }
                    if (findNetIp)
                    {
                        break;
                    }
                }
            }

            bool write = true;

            for (int j = 0; j < allPcName.Count; j++)
            {
                if (allPcName[j] == otherPcName)
                {
                    //Console.WriteLine(allPcName[j] + " == " + otherPcName + " | " + allIPOfTransfer[j] + " == " + foundedNetIp);
                    write = false;
                    break;
                }
            }
            if (write)
            {
                Console.WriteLine("pc name: " + otherPcName);
                allPcName.Add(otherPcName);
                Console.WriteLine("ip: " + foundedNetIp);
                allIPOfTransfer.Add(foundedNetIp);
                mainForm.ShowPcInvoke(new Machine(otherPcName, foundedNetIp, mainForm));
            }
            return(foundedNetIp.ToString());
        }