Sprawdź, czy jest to poprawny adres IP, czy nie w Bash (funkcja sprawdzania adresu IP)

To kolejna wskazówka, która może nam pomóc w określonych sytuacjach. Robię ten post bardziej jako przypomnienie, bo wiem, że będę tego potrzebował w pewnym momencie znowu hahaha.

Kiedy robimy skrypt w bash, a użytkownik musi wpisać adres IP, aby później (skrypt) zrobić coś przy użyciu tego adresu IP, czy wiesz, gdzie wszystko może pójść nie tak? ... że użytkownik NIE WPROWADZA IP, żeby wstawić jakieś bzdury lub niekompletne IP lub coś w tym rodzaju, ci, którzy programują, wiedzą, co mam na myśli ... ponieważ musi być zaprogramowany z myślą, że wydarzy się nawet najbardziej absurdalny O_O.

Aby uniknąć takiej sytuacji, istnieją funkcje lub metody sprawdzania poprawności adresu IP, to znaczy sprawdzania, czy dane, które wprowadził użytkownik, są rzeczywiście adresem IP, czy nie.

Tutaj je zostawiam:

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
}

Kiedy użytkownik wpisze „coś”, to coś będzie wartością zmiennej wątpliwy ... kod będzie wyglądał następująco:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

A teraz wskażemy, aby zweryfikować zawartość lub wartość wątpliwy z powyższą funkcją, która sprawdzi, czy faktycznie jest to adres IP, czy nie. Jeśli jest to adres IP, powie tak, a jeśli nie, powie nam, że NIE jest to adres IP:

if validar_ip ipdudosa;
then echo "Sí, es una IP correcta :D";
else
echo "No, eso NO es una IP";
fi

Cały skrypt zostawiam tutaj:

Funkcja sprawdzania poprawności adresu IP (przykład)

Spójrz dobrze, że na początku oświadczam, że jest: #! / bin / bash ... jeśli włożyli #! / Bin / sh To nie zadziała, spędziłem prawie 2 dni walcząc i protestując bo funkcja u mnie nie działała, a było to co miałem na sh zamiast bash hahaha.

Cóż, nic więcej do dodania, są do tego funkcje Python, Perl i inne języki ... w rzeczywistości ten, który wam pokazuję, nie jest jedynym sposobem na sprawdzenie poprawności adresów IP w bash, ale to było dla mnie bardzo dobre, dlatego się nim dzielę 🙂

pozdrowienia


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   ezitok powiedział

    Doskonały! Bardzo interesujące. Wielkie dzięki.

    1.    KZKG ^ Gaara powiedział

      Dziękuję za zatrzymanie się i skomentowanie 😀

  2.   Taregonu powiedział

    Świetny! teraz spróbujmy dostosować to „if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; ” tak, że wykrywa błąd w ipv6 ... gwałtowny ... o_0 bałagan, który należy umieścić w szesnastkowym i 128-bitowym numerze.

    Jasne, to hipotetyczny przypadek, o którym wspomniałem 🙂

    1.    KZKG ^ Gaara powiedział

      Do IPv6 ... cholera, nawet nie żartuję ... odpuść sobie ... jeśli nawet nie rozumiem dobrze, o co chodzi w IPv6 (operacja), nawet nie próbuję zweryfikować IP LOL!

      1.    Taregonu powiedział

        hehe, jeśli to prawda, myślenie o tym jest przerażające, ale takie podejście istnieje 😛

  3.   Aleksander Mora powiedział

    To już działa, po prostu uruchom ./script, a nie skrypt sh.

    1.    KZKG ^ Gaara powiedział

      Tak, oczywiście, jeśli wykonasz skrypt sh, spróbuje zinterpretować go za pomocą sh ... musisz zrobić skrypt bash, aby był taki sam jak ./script.sh 😉

  4.   Anatur powiedział

    Cześć, dziękuję za pomoc, była bardzo pomocna.