Linux : Awk la commande magique pour manipuler des fichiers

De $1

 

 howto05_small.pngUne petite aide...

La commande awk permet de manipuler des fichiers textes afin de les mettre en forme, supprimer ou ajouter des informations ....

 

 installations-logiciels-professionnels-entreprises02_small50.pngExemple N°1

 Voici notre fichier d'origine :

5.79.79.210,IP used by banjori C&C,2019-01-27 09:03,http://osint.bambenekconsulting.com/manual/banjori.txt
23.105.99.15,IP used by banjori C&C,2019-01-27 09:03,http://osint.bambenekconsulting.com/manual/banjori.txt
23.107.124.53,IP used by banjori C&C,2019-01-27 09:03,http://osint.bambenekconsulting.com/manual/banjori.txt
23.236.62.147,IP used by banjori C&C,2019-01-27 09:03,http://osint.bambenekconsulting.com/manual/banjori.txt
23.245.61.250,IP used by banjori C&C,2019-01-27 09:03,http://osint.bambenekconsulting.com/manual/banjori.txt

 

Je souhaite sortir de ces lignes uniquement les adresses IP et les formater pour intégrer cette liste dans NGINX

wget -q -O - http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist.txt | awk --posix '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print $1}'

 

Ca nous donne comme réponse :

5.79.79.210,IP
23.105.99.15,IP
23.107.124.53,IP
23.236.62.147,IP
23.245.61.250,IP
23.89.102.179,IP
23.89.20.107,IP
31.11.33.228,IP
43.230.142.125,IP
43.241.196.105,IP

 

Pas mal, beaucoup de pollution enlevée mais il reste ",IP" sur chaque ligne, nous allons donc rajouter une deuxième commande :

wget -q -O - http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist.txt | awk --posix '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print $1}' | awk -F "," '{gsub("IP"," ",$1);print $1}'

 

Ce qui nous donne :

5.79.79.210
23.105.99.15
23.107.124.53
23.236.62.147
23.245.61.250
23.89.102.179
23.89.20.107
31.11.33.228
43.230.142.125
43.241.196.105

 

Parfait, reste maintenant la mise en forme pour NGINX :

 wget -O - http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist.txt | awk --posix '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print "deny " $1 ";"}' | awk -F "," '{gsub("IP"," ",$1);print $1"; # comment=ipmasterlist"}'

 

Ce qui nous donne ceci :

deny 5.79.79.210; # comment=ipmasterlist
deny 23.105.99.15; # comment=ipmasterlist
deny 23.107.124.53; # comment=ipmasterlist
deny 23.236.62.147; # comment=ipmasterlist
deny 23.245.61.250; # comment=ipmasterlist
deny 23.89.102.179; # comment=ipmasterlist
deny 23.89.20.107; # comment=ipmasterlist
deny 31.11.33.228; # comment=ipmasterlist
deny 43.230.142.125; # comment=ipmasterlist
deny 43.241.196.105; # comment=ipmasterlist

 

Pour finir, on alimente un nouveau fichier .conf

wget -O - http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist.txt | awk --posix '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print "deny " $1 ";"}' | awk -F "," '{gsub("IP"," ",$1);print $1"; # comment=ipmasterlist"}' >> ipmasterlist-deny.conf

 

C'est fini, on peut intégrer ce fichier dans NGINX ...

 

 

 howto05_small.pngVous en pensez quoi ?


 

 

 

 

Enrichissez Yakakliker en y contribuant vous aussi.

 
Images (0)
 
Commentaires (0)
Vous devez être connecté pour poster un commentaire.