Pārbaudiet, vai tas ir pareizs IP vai nav Bash (funkcija IP validēšanai)

Šis ir vēl viens padoms, kas mums var palīdzēt noteiktās situācijās. Es šo ierakstu daru vairāk kā atgādinājumu, jo zinu, ka man tas kaut kad atkal būs vajadzīgs hahaha.

Kad mēs veidojam kādu scenāriju stipri iesist, un lietotājam jāievada IP adrese, lai vēlāk mēs (skripts) kaut ko darītu, izmantojot šo IP adresi, vai zināt, kur viss varētu noiet greizi? ... ka lietotājs NEVADA IP, lai liktu nejēdzības, nepilnīgu IP vai tamlīdzīgi, tie, kas ieprogrammē, zina, ko es domāju ... jo ir jāprogrammē, domājot, ka notiks pat visjēdzīgākais O_O.

Lai izvairītos no šīs situācijas, ir funkcijas vai metodes IP validēšanai, tas ir, lai pārbaudītu, vai lietotāja ievadītie dati patiešām ir IP vai nav.

Šeit es viņus atstāju:

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
}

Kad lietotājs ievadīs “kaut ko”, tas būs mainīgā vērtība apšaubāms ... kods būtu:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

Un tagad mēs norādīsim, lai apstiprinātu vietnes saturu vai vērtību apšaubāms ar iepriekš minēto funkciju, un tas pārbaudīs, vai tas tiešām ir IP vai nav. Ja tas ir IP, tā to teiks, ja tā nav, tā mums pateiks, ka tas NAV IP:

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

Es atstāju pilnu skriptu šeit:

Funkcija IP validēšanai (piemērs)

Izskaties labi, ka sākumā es paziņoju, ka tas ir: #! / bin / bash ... ja viņi ieliek # / Bin! / Sh Tas nedarbosies. Es pavadīju gandrīz 2 pilnas dienas, cīnoties un protestējot, jo funkcija nedarbojās, un man bija sh nevis bash hahaha.

Nu nekas cits nav jāpiebilst, tam ir funkcijas Pitons, Perl un citas valodas ... patiesībā šī, kuru es jums parādīju, nav vienīgais veids, kā validēt IP stipri iesist, bet man tas ir bijis ļoti labi, tāpēc es ar to dalos 🙂

Sveicieni


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

8 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   ezitoc teica

    Lieliski! Ļoti interesanti. Liels paldies.

    1.    KZKG ^ Gaara teica

      Paldies, ka apstājāties un komentējāt

  2.   taregons teica

    Lieliski! tagad mēģināsim pielāgot šo “ja [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}]]; " lai tas atklātu, kad ipv6 ir uzrakstīts nepareizi ... vardarbīgi ... o_0 haoss, kas jāieliek heksadecimālā un tā 128 bitu.

    Protams, tas ir hipotētisks gadījums, kuru es izvirzīju 🙂

    1.    KZKG ^ Gaara teica

      Uz IPv6 ... sasodīts, es pat nejokoju ... palaidu to vaļā ... ja pat labi nesaprotu, kas ir IPv6 (darbība), es pat nemēģinu validēt IP LOL!

      1.    taregons teica

        hehe, ja tā ir taisnība, ir drausmīgi par to domāt, bet pieeja pastāv 😛

  3.   Alehandro Mora teica

    Tas jau darbojas, vienkārši palaidiet ./script un nevis sh skriptu.

    1.    KZKG ^ Gaara teica

      Jā, protams, ja jūs izmantojat sh skriptu, tas mēģinās to interpretēt ar sh ... jums būs jādara bash skripts, lai tas būtu tāds pats kā ./script.sh 😉

  4.   Anaturs teica

    Sveiki, paldies par jūsu palīdzību, tā bija ļoti noderīga.