Ovo je još jedan savjet koji nam može pomoći u određenim situacijama. Ovaj post radim više kao podsjetnik, jer znam da će mi to kad tad trebati hahaha.
Kad radimo neki skript u udariti, a korisnik mora unijeti IP adresu, da bismo kasnije (skripta) učinili nešto pomoću te IP adrese, znate li gdje sve može poći po zlu? ... da korisnik NE unese IP, da stavi bilo kakvu glupost ili nepotpuni IP ili nešto slično, oni koji programiraju znaju na što mislim ... jer to mora biti programirano misleći da će se dogoditi i najapsurdnije O_O.
Da bi se izbjegla ova situacija, postoje funkcije ili metode za provjeru valjanosti IP-a, odnosno provjeru jesu li podaci koje je korisnik unio zapravo IP ili ne.
Ovdje ih ostavljam:
function validar_ip()
{
local ip=$ipdudosa
local stat=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
stat=$?
fi
return $stat
}
Kada korisnik unese "nešto", to će nešto biti vrijednost varijable sumnjiv ... kod bi bio:
echo " Inserte lo que desea comprobar si es una IP."
read "ipdudosa"
A sada ćemo naznačiti za provjeru sadržaja ili vrijednosti sumnjiv s gornjom funkcijom, a ovo će provjeriti je li to zapravo IP ili nije. Ako je IP, to će reći, ako nije, reći će nam da NIJE IP:
if validar_ip ipdudosa;
then echo "Sí, es una IP correcta :D";
else
echo "No, eso NO es una IP";
fi
Kompletnu skriptu ostavljam ovdje:
Funkcija za provjeru valjanosti IP-a (primjer)
Pogledajte dobro da na početku izjavljujem da je to: #! / bin / bash ... ako stave # / Bin / sh Ovo neće uspjeti, proveo sam gotovo dva puna dana boreći se i prosvjedujući jer funkcija nije radila i bilo je to što sam imao na sh umjesto bash hahaha.
Pa ništa drugo za dodati, za to postoje funkcije Piton, Perl i druge jezike ... zapravo, ovaj koji vam pokazujem nije jedini način za provjeru valjanosti IP-ova udariti, ali bilo mi je jako dobro zato ga dijelim 🙂
pozdravi
Savršen! Vrlo zanimljivo. Hvala puno.
Hvala vam što ste navratili i komentirali
Sjajno! sada pokušajmo prilagoditi ovo „ako [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " tako da otkriva kada je ipv6 napisan loše ... nasilno ... o_0 nered koji će se staviti u HEXadecimal i njegovih 128 bita.
Naravno, ovo je hipotetski slučaj koji sam pokrenuo 🙂
Za IPv6 ... prokletstvo, ni ne šalim se ... pusti to ... ako ni sam ne razumijem dobro o čemu se radi u IPv6 (operacija), ne pokušavam ni potvrditi IP LOL!
hehe, ako je istina, zastrašujuće je razmišljati o tome, ali pristup postoji 😛
Već radi, samo pokrenite ./script, a ne sh skriptu.
Da, naravno, ako napravite sh skriptu, pokušat će je protumačiti sh ... morali biste napraviti bash skriptu da bi bila ista kao ./script.sh
Bok, hvala na pomoći, bilo je vrlo korisno.