Verificați dacă este un IP corect sau nu în Bash (funcție pentru validarea IP)

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


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   ezitoc el a spus

    Perfect! Foarte interesant. Mulțumesc mult.

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim că ați trecut pe aici și ați comentat 😀

  2.   taregon el a spus

    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 🙂

    1.    KZKG ^ Gaara el a spus

      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!

      1.    taregon el a spus

        hehe, dacă este adevărat, este îngrozitor să te gândești la asta, dar abordarea există 😛

  3.   alexander mora el a spus

    Funcționează deja, rulați ./script și nu sh script.

    1.    KZKG ^ Gaara el a spus

      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 😉

  4.   anathur el a spus

    Salut, mulțumesc pentru ajutor, a fost foarte util.