Sjekk om det er riktig IP eller ikke i Bash (funksjon for å validere IP)

Dette er et annet tips som kan hjelpe oss i visse situasjoner. Jeg gjør dette innlegget mer som en påminnelse, fordi jeg vet at jeg vil trenge dette på et tidspunkt igjen hahaha.

Når vi gjør noe manus i bash, og brukeren må oppgi en IP-adresse, for senere skal vi (skriptet) gjøre noe ved hjelp av IP-adressen, vet du hvor alt kan gå galt? ... at brukeren IKKE skriver inn en IP, for å sette noe tull eller en ufullstendig IP eller noe sånt, de som programmerer vet hva jeg mener ... fordi det må programmeres og tenker at selv det mest absurde vil skje O_O.

Nettopp for å unngå denne situasjonen er det funksjoner eller metoder for å validere en IP, det vil si for å sjekke om dataene som brukeren skrev inn faktisk er en IP eller ikke.

Her forlater jeg dem:

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
}

Når brukeren skriver inn "noe", vil det være verdien av variabelen tvilsom ... koden vil være:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

Og nå vil vi indikere å validere innholdet eller verdien av tvilsom med ovennevnte funksjon, og dette vil sjekke om det faktisk er en IP eller ikke. Hvis det er en IP, vil den si det, hvis den ikke er, vil den fortelle oss at den IKKE er en IP:

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

Jeg legger igjen det komplette skriptet her:

Funksjon for å validere IP (eksempel)

Se godt ut at jeg i begynnelsen erklærer at det er: #! / Bin / bash ... hvis de setter det # / Bin / sh Dette vil ikke fungere, jeg brukte nesten 2 hele dager på å kjempe og protestere fordi funksjonen ikke fungerte, og det var det jeg hadde på sh i stedet for bash hahaha.

Vel, ingenting annet å legge til, det er funksjoner for dette i Python, Perl og andre språk ... faktisk, denne som jeg viser deg, er ikke den eneste måten å validere IP-er på bash, men det har vært veldig bra for meg det er derfor jeg deler det 🙂

Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ezitoc sa

    Perfekt! Veldig interessant. Takk så mye.

    1.    KZKG ^ Gaara sa

      Takk til deg for at du var innom og kommenterte 😀

  2.   taregon sa

    Flott! la oss nå prøve å tilpasse dette “hvis [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " slik at den oppdager når en ipv6 er skrevet dårlig ... voldelig ... o_0 rotet som kommer til å være å sette HEXadecimal og dens 128bits.

    Visst, dette er en hypotetisk sak som jeg reiste 🙂

    1.    KZKG ^ Gaara sa

      For å IPv6 ... jævla, jeg tuller ikke engang ... la det gå ... hvis jeg ikke en gang forstår hva IPv6 handler om (drift), prøver jeg ikke engang å validere en IP LOL!

      1.    taregon sa

        hehe, hvis det er sant, er det skremmende å tenke på det, men tilnærmingen eksisterer 😛

  3.   alexander mora sa

    Det fungerer allerede, bare kjør ./script og ikke sh script.

    1.    KZKG ^ Gaara sa

      Ja selvfølgelig, hvis du gjør sh script, vil det prøve å tolke det med sh ... må du gjøre bash script for å gjøre det det samme som ./script.sh

  4.   anathur sa

    Hei, takk for hjelpen, det var veldig nyttig.