Example #1
0
        public static List <Modelo.Ip> RecuperarTodasLasIps()
        {
            List <Modelo.Ip> _lista = new List <Modelo.Ip>();
            string           strSQL = @"
                SELECT 
                      L.ip_user
                    , IFNULL(ip.ip, '') AS ip
	            FROM
	                (SELECT ip_user FROM sensor.sc_log GROUP BY ip_user) AS L
	            LEFT JOIN
	                (SELECT ip FROM ips GROUP BY ip) AS ip ON ip.ip = L.ip_user
            ";

            MySqlConnection MyConn   = DbConexion.ObtenerConexion();
            MySqlCommand    _comando = new MySqlCommand(strSQL, MyConn);

            MySqlDataReader _reader = _comando.ExecuteReader();

            while (_reader.Read())
            {
                Modelo.Ip pIp = new Modelo.Ip();
                pIp.Ip_User = _reader.GetString(0);
                pIp.IP      = _reader.GetString(1);

                _lista.Add(pIp);
            }

            MyConn.Close();

            return(_lista);
        }
Example #2
0
        public static int Agregar(Modelo.Ip pI)
        {
            int    retorno = 0;
            string strSQL  = "";

            strSQL = strSQL + " INSERT INTO sensor.ips ";
            strSQL = strSQL + " (ip, isp, country, latitud, longitud, zona, ciudad, continente ";
            strSQL = strSQL + " ) VALUES ";
            strSQL = strSQL + "('" + pI.IP + "', '" + pI.Isp + "', '" + pI.Country + "', '" + pI.Latitud + "', '" + pI.Longitud + "', '" + pI.Zona + "', '" + pI.Ciudad + "', '" + pI.Continente + "'";
            strSQL = strSQL + " )";
            MySqlConnection MyConn = new MySqlConnection();

            MyConn = DbConexion.ObtenerConexion();
            MySqlCommand _comando = new MySqlCommand(String.Format(strSQL), MyConn);

            retorno = _comando.ExecuteNonQuery();

            MyConn.Close();

            return(retorno);
        }
Example #3
0
        private void ChequearIps()
        {
            try
            {
                string contenido_url = "";
                foreach (Modelo.Ip oIp in Controlador.IpsDAL.RecuperarTodasLasIps())
                {
                    if (oIp.IP == "") //significa que estea IP no esta dada de alta en la tabla IP, solo esta en la tabla LOG.
                    {
                        //Primero consulto los datos en la pagina de internet y luego los guardo en la tabla IP
                        contenido_url = leerPaginaWeb("https://ip-address.us/lookup/" + oIp.Ip_User);

                        if (contenido_url != "ERROR")
                        {
                            string[]  ini;
                            string[]  fin = new string[] { "</dd>" };
                            string[]  primer_corte;
                            string[]  segundo_corte;
                            Modelo.Ip pIp = new Modelo.Ip();
                            pIp.IP        = oIp.Ip_User;
                            ini           = new string[] { "ISP</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Isp       = segundo_corte[0].ToString();

                            ini           = new string[] { "Country Name</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Country   = segundo_corte[0].ToString();

                            ini           = new string[] { "Latitude</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Latitud   = segundo_corte[0].ToString();

                            ini           = new string[] { "Longitude</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Longitud  = segundo_corte[0].ToString();

                            ini           = new string[] { "Zone Name</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Zona      = segundo_corte[0].ToString();

                            ini           = new string[] { "City Name</dt> <dd>" };
                            primer_corte  = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Ciudad    = segundo_corte[0].ToString();

                            ini            = new string[] { "Continent Name</dt> <dd>" };
                            primer_corte   = contenido_url.Split(ini, StringSplitOptions.None);
                            segundo_corte  = primer_corte[Convert.ToInt32(1)].Split(fin, StringSplitOptions.None);
                            pIp.Continente = segundo_corte[0].ToString();

                            int resultado;
                            resultado = Controlador.IpsDAL.Agregar(pIp);

                            //Si es Country != "Argentina" tengo que mandar email notificando un posible ataque
                            if (pIp.Country != "Argentina")
                            {
                                //Notifico a todos los que tienen priviligio de administrador en la tabla USUARIOS (Y)
                                foreach (Modelo.Usuario oUsuario in Controlador.UsuariosDAL.BuscarPrivAdmin())
                                {
                                    oSender.mMailTo  = oUsuario.Email;
                                    oSender.mSubject = "Alerta Ataque Sensor Control";
                                    string e_mail      = "";
                                    string msjs_pedido = "";
                                    e_mail          = "<p> Estimado,     </p><p></p>";
                                    msjs_pedido     = msjs_pedido + "<p> Informamos que detectamos conexiones anormales.</p>";
                                    msjs_pedido     = msjs_pedido + "<li> IP: <strong>" + pIp.IP + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> ISP: <strong>" + pIp.Isp + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> Continente: <strong>" + pIp.Continente + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> PaĆ­s: <strong>" + pIp.Country + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> Ciudad: <strong>" + pIp.Ciudad + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> Zona: <strong>" + pIp.Zona + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> Latitud: <strong>" + pIp.Latitud + "</strong>     </li>";
                                    msjs_pedido     = msjs_pedido + "<li> Longitud: <strong>" + pIp.Longitud + "</strong>     </li>";
                                    e_mail          = e_mail + "</ul>" + msjs_pedido + "</ul>";
                                    e_mail          = e_mail + "<p></p><p>          Muchas gracias.     </p>";
                                    e_mail          = e_mail + "<p></p><p> Saludos,     </p>";
                                    oSender.mMsg    = e_mail;
                                    oSender.redOSDE = redOSDE;
                                    oSender.Envio();
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                oLog.LogToFile(ex.ToString());
                //MessageBox.Show(ex.ToString());
            }
        }