Portál AbcLinuxu, 12. května 2024 19:07


Dotaz: Jak na kontrolu v BASH správného tvaru názvu domény všech řádů

20.2.2013 12:55 Dědek
Jak na kontrolu v BASH správného tvaru názvu domény všech řádů
Přečteno: 199×
Odpovědět | Admin
Zdravím všechny ;) Chtěl bych poprosít zdejší profíky o napsání jedné podmínky jelikož já na to opravdu nemám hlavu :( Potřeboval bych na serveru v BASH scriptu po zadání názvu zkontrolovat, jestli bylo vyplněn správný format. Platný formá je

Co může obsahovat
1 může obsahovat malé znaky a-z bez diakritiky
2 nebo může obsahovat čísla 0-9
3 dále může obsahovat pomlčky "-" a tečky "."
4 název může být jak pro název domény 2 řádu tak 3 řádu atd..
Pomlčka ani tečka nesmí být ani prvni ani posledním znakem v zadaném názvu a nesmí spolu sousedit. Prostě musí zadat platný název pro název domény 2 řádu, 3 řádu atd.. 1 řádu ne! ;)

Nepomůže někdo? nebo neví někdo o hotovém scriptu? Předem moc děkuji
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.2.2013 13:03 mike
Rozbalit Rozbalit vše Re: Jak na kontrolu v BASH správného tvaru názvu domény všech řádů
Odpovědět | | Sbalit | Link | Blokovat | Admin
man grep

body 1-4 jsi popsal regularni vyraz, ted ho jenom prepis z cestiny do regexp.

wamba avatar 20.2.2013 16:11 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Jak na kontrolu v BASH správného tvaru názvu domény všech řádů
Odpovědět | | Sbalit | Link | Blokovat | Admin
pokud je povolen Perl, tak třeba takto
 
use Regexp::Common q/net/;

while (<>) {
    print $_;
    if ( 1
        and /^$RE{net}{domain}$/ #je platné jméno domény
        and /\./                 #je alespoň druhého řádu
        ) {
        print "je\n";
    }
    else {
        print "není\n";
    }
}
(očekává na vstup domény odděleny novým řádkem)

pokud ne, pak se můžete alespoň inspirovat Regexp::Common::net (za posledním pattern)
This would have been so hard to fix when you don't know that there is in fact an easy fix.
Jendа avatar 20.2.2013 16:13 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na kontrolu v BASH správného tvaru názvu domény všech řádů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nesmí obsahovat víc teček za sebou a ani pomlček, pokud to není IDN. Nesmí pomlčkou začínat. A další, viz příslušná RFC.
Já to s tou denacifikací Slovenska myslel vážně.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.