Re: Filtrar comodins/regex de le s línies
Alex Muntada <[email protected]>
| Newsgroups | gmane.linux.debian.user.catalan |
|---|---|
| Message-ID | <Za0MiuAdmUfyZr7T@ix> |
Hola Narcis,
> no es tracta dels números sinó de buscar patrons amb una cadena
> fixa en comptes de buscar cadenes amb un patró.
>
> Exemple amb números de DNI; la llista seria:
> ES......... Spain
> FR......... France
> .........DE Germany
> IT......... Italy
>
> I donat un DNI «55667788DE» poder trobar la línia del patró
> corresponent:
> .........DE Germany
> I així extraure el nom de l'estat després de l'espai: Germany.
Amb Python, Perl o algun altre llenguatge de més alt nivell no
seria més fàcil d'obtenir el país perquè podries capturar la
part de l'expressió regular que t'interessi i utilitzar-la per
indexar un diccionari:
```
#!/usr/bin/perl
use v5.32;
use strict;
use warnings;
my %paisos = (
'DE' => 'Germany',
);
for my $item (<DATA>) {
chomp($item);
say "$item -> $paisos{$1}" if $item =~ /([A-Z]{2})$/;
}
__DATA__
12345678DE
```
> Cas més sofisticat; Rangs d'adreces IPv4 en un fitxer
> «spammers.txt»:
> 55\.66\.77\.88
> 66\.77\.88\..*
> 99\.11\.22\.33
>
> i amb això trobar que si la IP de l'interlocutor té
> coincidència a la llista, aleshores no acceptar-lo.
> I així poder incloure rangs també.
Les expressions regulars per als rangs IP són poc acurades perquè
no tenen en compte les màscares de bits dels segments. En general
és millor enfocar aquest problema d'una altra manera més eficient
(per exemple amb ipset) i utilitzar llistes negres que tinguin
una reputació prou bona, per exemple:
https://github.com/firehol/blocklist-ipsets
És un tema que fa uns mesos que em vull mirar amb deteniment,
però en el que encara no he pogut aprofundir. Si algú hi té
experiència, estaria bé que ens expliqui com ho fa per incloure
llistes negres al tallafocs.
Salut,
Alex
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Alex Muntada <[email protected]>
⢿⡄⠘⠷⠚⠋ Debian Developer 🍥 log.alexm.org
⠈⠳⣄⠀⠀⠀⠀
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEaUBwKsbetWW2SKTt466XjoNOXn4FAmWtDIMACgkQ466XjoNO Xn5rURAA0O5ZBzFaCxWa6k465xlQ0wyzZomC1lcW8ZUqPn7+QBNpl0RpopGlDGrr 0Tt59VqZXcvFE45RvcDm/mbjjOpZSDouXiWMXZPmLwT7igA38q7+ZC2EovdYfQuJ mzwvawuaO/0KanCFP7yuol3fX1zh+LXtczLo6OHP1l6xb0o7Nsj7hJ2LPYeErvXC mVnj6X30zDNHdkmJYJ736P2KMalWao28n4c83oRj5WdEnbEI6e4rmsERggnFnHB3 X7qr0lHcc9CyMEsOiUm5Q/zXqLyxu+L+I2kCNhqPr6avyC60AGW1DopAenlH9IaB /QNH81wOGdtlxGY6IOiwUU7vPzQqMMRO7vHKzVfmaXnp/Jn3mB+itlKEdnuXv0QR lcON8XL/U8FPn09Pxu6XY7+ICnn9ISLi4dVIUtGpPpCpSBFMFwd51TzCBekvVjPH zRGmvDabm1H9+kwLQZgxcrwgVrVnuY2x/O+ipOzmvj2LpJ/0ALP/98xKtNITF0rU aUs0p0v6CJEVcSJjSyTHYjxmXGtjCE7AfzC9aPJXG6CZTr2R1q/gVxgDaAh+Ddqd 84ZTtK3C6Scybx7Nd476KxMigBGuxIXwdcfYaea0HcbkLIBbWuYPkiTb+RxScD8K EedfmDbbtSyTFM1aN9o8LWtdErNxoOhbaLRBXLcBSH9LmtkgI+o= =cQY0 -----END PGP SIGNATURE-----