Patikrinkite, ar jis yra teisingas IP, ar ne „Bash“ (funkcija patvirtinti IP)

Tai dar vienas patarimas, kuris gali mums padėti tam tikrose situacijose. Šį įrašą darau labiau kaip priminimą, nes žinau, kad man kažkada to vėl prireiks hahaha.

Kai mes darome scenarijų bash, o vartotojas turi įvesti IP adresą, kad vėliau mes (scenarijus) ką nors padarytume naudodami tą IP adresą, ar žinote, kur viskas gali nepavykti? ... kad vartotojas NEĮVEDA IP, nesudaro jokių nesąmonių, neišsamios IP ar pan., tie, kurie programuoja, žino, ką turiu omenyje ... nes tai turi būti užprogramuota galvojant, kad įvyks net absurdiškiausias O_O.

Būtent tam, kad išvengtumėte šios situacijos, yra funkcijos ar metodai, skirti patvirtinti IP, ty patikrinti, ar vartotojo įvedami duomenys iš tikrųjų yra IP, ar ne.

Čia aš juos palieku:

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
}

Kai vartotojas įveda „kažką“, tas kažkas bus kintamojo vertė abejotinas ... kodas būtų:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

Dabar mes nurodysime patvirtinti turinį ar vertę abejotinas su aukščiau nurodyta funkcija, ir tai patikrins, ar tai tikrai IP, ar ne. Jei tai yra IP, jis taip pasakys, jei ne, jis mums pasakys, kad tai nėra IP:

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

Visą scenarijų palieku čia:

Funkcija patikrinti IP (pavyzdys)

Gerai atrodykite, kad pradžioje pareiškiu, kad tai: #! / bin / bash ... jei jie įdės #! / Bin / sh Tai neveiks, praleidau beveik 2 visas dienas kovodamas ir protestuodamas, nes ši funkcija neveikė, ir aš turėjau sh vietoj bash hahaha.

Na nieko daugiau nepridėti, tam yra funkcijos Pitonas, Perlas ir kitomis kalbomis ... Tiesą sakant, ši jums rodoma kalba nėra vienintelis būdas patvirtinti IP bash, bet man tai buvo labai gera, todėl ir dalinuosi 🙂

saludos


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   ezitoc sakė

    Puikus! Labai įdomu. Labai ačiū.

    1.    KZKG ^ Gaara sakė

      Ačiū, kad užsukote ir pakomentavote 😀

  2.   taregonas sakė

    Puiku! dabar pabandykime pritaikyti šį „jei [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}]]; " kad aptiktų, kai neteisingai parašyta „ipv6“ ... smurtinė ... o_0 netvarka, kurią reikia įdėti į heksadecimalį ir jo 128 bitus.

    Žinoma, tai hipotetinis atvejis, kurį iškėliau 🙂

    1.    KZKG ^ Gaara sakė

      Prie IPv6 ... po velnių, aš net nejuokauju ... paleisk tai ... jei net gerai nesuprantu, kas yra IPv6 (operacija), net nebandau patvirtinti IP LOL!

      1.    taregonas sakė

        hehe, jei tai tiesa, siaubinga apie tai galvoti, bet požiūris egzistuoja 😛

  3.   Aleksandras Mora sakė

    Tai jau veikia, tiesiog paleiskite ./script, o ne sh scenarijų.

    1.    KZKG ^ Gaara sakė

      Taip, žinoma, jei padarysite „sh“ scenarijų, jis bandys jį interpretuoti naudodamas „sh“ ... turėtumėte padaryti „bash“ scenarijų, kad jis taptų tas pats kaip ./script.sh 😉

  4.   Anatūras sakė

    Sveiki, ačiū už pagalbą, tai buvo labai naudinga.