Salut à vous,

Iptables est alimenté toutes les heures avec les nouvelles tentatives de connexions sur le port ssh et les adresses prélevées vont directement dans un fichier de blacklist.

Je voudrais que ces adresses soient triées par ordre croissant, or le bout de code trouvé chez PerlMonk ne tri pas correctement.

Voici le fichier source :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
192.168.2.7
192.168.0.251
172.18.2.34
172.16.0.4
10.10.10.10
192.168.45.47
10.116.102.89
192.168.45.47
192.168.34.47
192.168.22.47
192.168.15.123
192.168.5.4
192.168.34.7
Le code perl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
use Socket qw [inet_aton];
sub squish {
  my($ip_lo,$ip_hi,$name) = split (//,$_[0]);
  return $name.inet_aton($ip_lo).inet_aton($ip_hi);
}
 
my @sorted = sort { squish($a) cmp squish($b) } @global;
Le résultat du tri :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
10.10.10.10
10.116.102.89
172.18.2.34
172.16.0.4
192.168.2.7
192.168.0.251
192.168.45.47
192.168.45.47
192.168.34.47
192.168.22.47
192.168.15.123
192.168.5.4
192.168.34.7

Merci