EPIC4 Manual


mask()

Pattern Matching

mask(typ adres)

Zamienia adres na maskę wg odpowiedniego typu.


Adres to n!u@h.d (nick!user@host.domena)

typhostnameIPv4
0*!u@h.d*!u@h.d
1*!*u@h.d*!*u@h.d
2*!*@h.d*!*@h.d
3*!*u@*.d*!*u@d.*
4*!*@*.d*!*@d.*
5n!u@h.dn!u@d.h
6n!*u@h.dn!*u@d.h
7n!*@h.dn!*@d.h
8n!*u@*.dn!*u@d.*
9n!*@*.dn!*@d.*
10*!*@h.d*!*@d.*
11*!*u@h.d*!*u@d.*
12n!*@h.dn!*@d.*
13n!*u@h.dn!*u@d.*



@ :test1 = mask(11 Lamer-!vader@mud.pl)
@ :test2 = mask(11 Lamer-!blah@12.34.56.78)
@ :test3 = mask(3 blah!pikachu@pokemons.from.jp)
@ :test4 = mask(0 kotek!~fake@ala.ma.kota.pl)
@ :test5 = mask(10 spamer!blah@dial-135-32-54-242-net.in.the.tpsa.com)
@ :test6 = mask(0 clone37!abuse@3ffe:babe:34:f4:ac:6b:31:3:37)

$test1 to '*!*vader@mud.pl'
$test2 to '*!*blah@12.34.56.*'
$test3 to '*!*pikachu@*.from.pl'
$test4 to '*!fake@ala.ma.kota'
$test5 to '*!blah@dial-*-*-*-*-net.in.the.tpsa.com'
$test6 to '*!abuse@3ffe:babe:34:f4:ac:6b:31:3:37.*'



Ciekawe są ostatnie trzy przykłady:
4 -- brak ~ (tyldy). Tak będzie zawsze, również z innymi prefixami (+ - = ^ ~), dlatego trzeba uważać.
5 -- zamiana wszystkich cyfr w hostname na '*', bardzo przydatne w walce z dialupami :-)
6 -- .* na koncu. Niestety $mask() jak i $uhc() odróżniają IPv6 od IPv4. Można sobie z tym poradzić np tak:


@ :nuh = [nick!user@3ffe:a56:7f:90:9c:75:ab:21:12]
@ :mask = mask(11 $nuh)
@ :ok = (pass(: $^:mask))?[$before(. $^:mask)\:*]:mask

$mask jest z błedem, ale $ok już powinno być w porządku, bez tej durnej kropki w adresie IPv6.


Nie rozumiesz przykładu? Poczytaj o zasadach składni, zasadach cytowania lub/i zobacz: $pass(), $before()


Zobacz także: $uhc(), $deuhc()




Lista Funkcji Home Następny Paragraf