Проверете дали е правилен IP или не в Bash (функция за проверка на IP)

Това е още един съвет, който може да ни помогне в определени ситуации. Правя този пост по-скоро като напомняне, защото знам, че това ще ми трябва в даден момент отново хахаха.

Когато правим някакъв скрипт в тряскам, а потребителят трябва да въведе IP адрес, за по-късно ние (скриптът) да направим нещо, използвайки този IP адрес, знаете ли къде всичко може да се обърка? ... че потребителят НЕ въвежда IP, за да постави някакви глупости или непълен IP или нещо подобно, тези, които програмират, знаят какво имам предвид ... защото трябва да бъде програмиран, мислейки, че дори и най-абсурдното ще се случи O_O.

Именно за да се избегне тази ситуация, съществуват функции или методи за валидиране на IP, тоест за проверка дали данните, които потребителят е въвел, всъщност са IP или не.

Тук ги оставям:

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
}

Когато потребителят въведе „нещо“, това нещо ще бъде стойността на променливата съмнителен ... кодът ще бъде:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

И сега ще посочим за проверка на съдържанието или стойността на съмнителен с горната функция и това ще провери дали всъщност е IP или не. Ако е IP, той ще го каже, ако не е, ще ни каже, че НЕ е IP:

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

Оставям пълния скрипт тук:

Функция за проверка на IP (пример)

Погледнете внимателно, че в началото заявявам, че е: #! / Хамбар / Баш ... ако сложат # / BIN / ш Това няма да работи, прекарах почти 2 дни в борба и протести, защото функцията не работи за мен и беше, че имах на sh вместо баш хахаха.

Ами нищо друго за добавяне, има функции за това в Питон, Perl и други езици ... всъщност този, който ви показвам, не е единственият начин за валидиране на IP адресите тряскам, но при мен се получи много добре, затова го споделям 

поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

     езиток каза той

    Перфектно! Много интересно. Благодаря много.

        KZKG ^ Гаара каза той

      Благодаря ви, че се отбихте и коментирахте 😀

     тарегон каза той

    Страхотен! сега да се опитаме да адаптираме това „ако [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}]]; " така че да открие, когато ipv6 е изписан неправилно ... насилствено ... o_0 бъркотията, която трябва да бъде поставена в шестнадесетичната и 128-битовите.

    Разбира се, това е хипотетичен случай, който повдигнах 🙂

        KZKG ^ Гаара каза той

      Към IPv6 ... по дяволите, дори не се шегувам ... пуснете го ... ако дори не разбирам добре за какво става въпрос (работа) на IPv6, дори не се опитвам да проверя IP LOL!

          тарегон каза той

        хе-хе, ако е вярно, ужасяващо е да се мисли за това, но подходът съществува 😛

     Алехандро Мора каза той

    Вече работи, просто стартирайте ./script, а не sh скрипт.

        KZKG ^ Гаара каза той

      Да, разбира се, ако направите скрипт sh, той ще се опита да го интерпретира с sh ... ще трябва да направите bash скрипт, за да го направите същият като ./script.sh 😉

     Анатур каза той

    Здравейте, благодаря за вашата помощ, беше много полезно.