Para empezar se crean las carpetas donde se almacenarán los datos.
dds.base::createPath("http") dds.base::createPath("https") dds.base::createPath("maxmind")
Una vez creadas, se descargan los datasets. En este caso HTTP y HTTPS, los cuales se compararán posteriormente. Comentar que el código funciona para cualquier otro dataset(csv) de rapid7.
URL datasets: - https://opendata.rapid7.com/sonar.tcp/
Datasets HTTP y HTTPS:
ds.http=dds.base::downloadScanIO("https://opendata.rapid7.com/sonar.tcp/2019-04-20-1555731287-http_get_5000.csv.gz","http","scansio.http") ds.https=dds.base::downloadScanIO("https://opendata.rapid7.com/sonar.tcp/2019-04-20-1555735028-https_get_5001.csv.gz","https","scansio.https") ds.maxmind=dds.base::downloadMaxmind("maxmind")
Se generan muestras de los datasets especificados: HTTP y HTTPS
Dichos dataframes contienen información de conexiones HTTP y HTTPS mostrando las IP's origen y destino de la comunicación.
Se genera dataframe del dataset MAXMIND
Dicho dataframe contiene información sobre la geolocalización de diferentes rangos IP (REDES).
df.http=dds.base::generate.dfScan(3000,3000,ds.http) df.https=dds.base::generate.dfScan(3000,3000,ds.https) df.maxmind=dds.base::generate.dfMaxmind(ds.maxmind)
Se junta cada uno de los dataframe HTTP y HTTPS con el dataframe Maxmind para obtener la geolocalización de las IP origen y destino.
df.http.maxmind=dds.base::cleanAndJoin.df(df.http,df.maxmind) df.https.maxmind=dds.base::cleanAndJoin.df(df.https,df.maxmind)
Se procesa la longitud y latitud de la IP origen de cada fila del dataframe y se consigue el pais asociado.
df.http.country=dds.base::addCountry(df.http.maxmind) df.https.country=dds.base::addCountry(df.https.maxmind)
Se muestra los dataframe resultantes, en este caso mostramos el Dataframe HTTP a modo ejemplo, dejando el HTTPS comentado por si se quisiera visualizar.
DT::datatable(df.http.country) ##DT::datatable(df.https.country)
Se filtran los datos del dataframe para que muestre solo la cantidad de conexiones asociada a cada pais y seguidamente se muestran los datos con un barplot.
dds.base::printBarplot(df.http.country) dds.base::printBarplot(df.https.country)
Se filtran los datos del dataframe para que muestre solo la cantidad de conexiones asociada a cada pais y seguidamente se muestran los datos en un mapa mundo.
df.http.country=dds.base::printWorldMap(df.http.country) df.https.country=dds.base::printWorldMap(df.https.country)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.