Provjerite je li to ispravan IP u Bash-u (funkcija za provjeru valjanosti IP-a)

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ezitoc dijo

    Savršen! Vrlo zanimljivo. Hvala puno.

    1.    KZKG ^ Gaara dijo

      Hvala vam što ste navratili i komentirali

  2.   taregon dijo

    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 🙂

    1.    KZKG ^ Gaara dijo

      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!

      1.    taregon dijo

        hehe, ako je istina, zastrašujuće je razmišljati o tome, ali pristup postoji 😛

  3.   alexander mora dijo

    Već radi, samo pokrenite ./script, a ne sh skriptu.

    1.    KZKG ^ Gaara dijo

      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

  4.   Anatur dijo

    Bok, hvala na pomoći, bilo je vrlo korisno.