コード例 #1
0
        private void CarregarListaIps()
        {
            placasSalvas.Clear();
            string[] nomePlacas;
            string   streamPlacas = iniFile.Read("PLACAS_SALVAS");

            if (streamPlacas.Length > 0)
            {
                nomePlacas = streamPlacas.Split(';');
            }
            else
            {
                return;
            }

            //Busca as configuracoes da placa
            for (int i = 0; i < nomePlacas.Length - 1; i++)
            {
                if (nomePlacas[i].Length <= 0)
                {
                    continue;
                }
                //Pega as configuracoes
                string   p         = iniFile.Read(nomePlacas[i], "PLACAS");
                string[] confPlaca = p.Split(';');

                if (confPlaca[0] == "" || confPlaca.Length != 6)
                {
                    continue;
                }

                Placa conf = new Placa();
                conf.Id   = nomePlacas[i];
                conf.Nome = confPlaca[0];
                conf.SetIpAddr(confPlaca[1]);
                conf.SetSubNet(confPlaca[2]);
                conf.DhcpEnable = confPlaca[3] == "TRUE";
                conf.Descricao  = confPlaca[4];

                if (confPlaca.Length >= 6)
                {
                    conf.Apelido = confPlaca[5];
                }
                else
                {
                    conf.Apelido = "Sem nome";
                }

                placasSalvas.Add(conf);
            }

            AtualizarGridPlacasSalvas();
        }
コード例 #2
0
        private void AtualizarPlacas()
        {
            placas.Clear();
            foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
            {
                if ((ni.NetworkInterfaceType != NetworkInterfaceType.Wireless80211 && ni.OperationalStatus != OperationalStatus.Up) ||
                    (ni.NetworkInterfaceType != NetworkInterfaceType.Ethernet && ni.OperationalStatus != OperationalStatus.Up))
                {
                    continue;
                }

                try
                {
                    var ipProperties = ni.GetIPProperties();
                    var placa        = new Placa();

                    if (!ipProperties.GetIPv4Properties().IsDhcpEnabled)
                    {
                        var ipInfo = ipProperties.UnicastAddresses.FirstOrDefault(ip => ip.Address.AddressFamily == AddressFamily.InterNetwork);

                        if (ipInfo == null)
                        {
                            continue;
                        }

                        var currentIPaddress  = ipInfo.Address.ToString();
                        var currentSubnetMask = ipInfo.IPv4Mask.ToString();

                        placa.SetIpAddr(currentIPaddress);
                        placa.SetSubNet(currentSubnetMask);
                    }

                    placa.Nome       = ni.Name;
                    placa.Descricao  = ni.Description;
                    placa.DhcpEnable = ipProperties.GetIPv4Properties().IsDhcpEnabled;

                    placas.Add(placa);
                }
                catch
                {
                }
            }
            //Carrega os dados
            CarregaComboBoxPlacas();
        }
コード例 #3
0
        private void dgvListaIps_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                var placa = placasSalvas[dgvListaIps.SelectedCells[0].RowIndex];

                //Verifica se a placa pode ser utilizada
                bool  encontrado      = false;
                Placa placaEncontrada = null;
                int   index           = 0;

                foreach (var p in placas)
                {
                    if (p.Descricao == placa.Descricao)
                    {
                        placaEncontrada = p;
                        encontrado      = true;
                    }

                    if (encontrado)
                    {
                        break;
                    }

                    index++;
                }

                if (!encontrado)
                {
                    MessageBox.Show("Esta placa nao esta disponivel agora. Verifique as sua conexao");
                    return;
                }

                placaEncontrada.SetIpAddr(placa.IP);
                placaEncontrada.SetSubNet(placa.Subnet);
                placaEncontrada.DhcpEnable = placa.DhcpEnable;

                CarregaComboBoxPlacas();
                cbPlacas.SelectedIndex = index;
            }catch
            {
            }
        }
コード例 #4
0
        private void btnSalvarConfiguracao_Click(object sender, EventArgs e)
        {
            string indicePk = iniFile.Read("INDICE_PK");
            int    iPk      = Convert.ToInt32(indicePk == "" ? "0" : indicePk);

            FormNomePlaca formNomePlaca = new FormNomePlaca();

            formNomePlaca.ShowDialog();

            Placa p = new Placa();

            p.Id         = iPk.ToString();
            p.Nome       = placas[cbPlacas.SelectedIndex].Nome;
            p.Descricao  = placas[cbPlacas.SelectedIndex].Descricao;
            p.DhcpEnable = cbDhcp.Checked;
            p.Apelido    = formNomePlaca.DialogResult == DialogResult.OK ? formNomePlaca.NomePlaca : "Sem nome";
            string ip     = "0.0.0.0";
            string subnet = "0.0.0.0";

            if (!p.DhcpEnable)
            {
                if (!ValidaIp(txtIP_1.Text, txtIP_2.Text, txtIP_3.Text, txtIP_4.Text, out ip))
                {
                    MessageBox.Show("A Faixa de IP esta incorreta!");
                    return;
                }

                if (!ValidaIp(txtSubNet_1.Text, txtSubNet_2.Text, txtSubNet_3.Text, txtSubNet_4.Text, out subnet))
                {
                    MessageBox.Show("A Faixa de IP da mascara esta incorreta!");
                    return;
                }
            }

            p.SetIpAddr(ip);
            p.SetSubNet(subnet);

            placasSalvas.Add(p);

            SalvarConfiguracao(p);
            AtualizarGridPlacasSalvas();
        }