Acesta este un alt sfat care ne poate ajuta în anumite situații. Fac această postare mai mult ca un memento, pentru că știu că voi avea nevoie de asta la un moment dat din nou hahaha.
Când facem niște scripturi în pocni, iar utilizatorul trebuie să introducă o adresă IP, pentru ca mai târziu noi (scriptul) să facem ceva folosind acea adresă IP, știți unde totul ar putea merge prost? ... că utilizatorul NU introduce un IP, pentru a pune orice prostii sau un IP incomplet sau ceva de genul ăsta, cei care programează știu la ce mă refer ... pentru că trebuie programat gândindu-se că până și cel mai absurd se va întâmpla O_O.
Tocmai pentru a evita această situație, există funcții sau metode pentru validarea unui IP, adică pentru a verifica dacă datele pe care le-a introdus utilizatorul sunt de fapt un IP sau nu.
Aici le las:
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
}
Când utilizatorul introduce „ceva”, acel ceva va fi valoarea variabilei îndoielnic ... codul ar fi:
echo " Inserte lo que desea comprobar si es una IP."
read "ipdudosa"
Și acum vom indica validarea conținutului sau valorii îndoielnic cu funcția de mai sus, iar acest lucru va verifica dacă este de fapt un IP sau nu. Dacă este un IP, va spune așa, dacă nu este, ne va spune că NU este un IP:
if validar_ip ipdudosa;
then echo "Sí, es una IP correcta :D";
else
echo "No, eso NO es una IP";
fi
Scenariul complet le las aici:
Funcție pentru validarea IP (exemplu)
Uită-te bine că la început declar că este: #! / Bin / bash ... dacă pun # / Bin / sh Acest lucru nu va funcționa, am petrecut 2 zile aproape complet luptând și protestând, deoarece funcția nu a funcționat pentru mine și a fost pe care am avut-o pe sh în loc de bash hahaha.
Ei bine, nimic altceva de adăugat, există funcții pentru acest lucru Piton, Perl și alte limbi ... de fapt, aceasta pe care ți-o arăt nu este singura modalitate de validare a adreselor IP pocni, dar a fost foarte bine pentru mine, de aceea îl împărtășesc 🙂
În ceea ce priveşte
Perfect! Foarte interesant. Mulțumesc mult.
Vă mulțumim că ați trecut pe aici și ați comentat 😀
Grozav! acum să încercăm să adaptăm acest „if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " astfel încât să detecteze când un ipv6 este scris prost ... violent ... o_0 mizeria care urmează să fie pus HEXadecimal și 128bit.
Sigur, acesta este un caz ipotetic pe care l-am ridicat 🙂
La IPv6 ... la naiba, nici nu glumesc ... las-o să plece ... dacă nici nu înțeleg bine despre ce este vorba de IPv6 (funcționare), nici nu încerc să validez un IP LOL!
hehe, dacă este adevărat, este îngrozitor să te gândești la asta, dar abordarea există 😛
Funcționează deja, rulați ./script și nu sh script.
Da, desigur, dacă faceți scriptul sh, acesta va încerca să-l interpreteze cu sh ... ar trebui să faceți script bash pentru a-l face la fel ca ./script.sh 😉
Salut, mulțumesc pentru ajutor, a fost foarte util.