Проверьте, правильный ли это IP-адрес или нет в Bash (функция проверки IP-адреса)

Это еще один совет, который может помочь нам в определенных ситуациях. Я делаю этот пост скорее как напоминание, потому что знаю, что он мне понадобится в какой-то момент снова, хахаха.

Когда мы делаем сценарий в колотить, и пользователь должен ввести IP-адрес, чтобы позже мы (скрипт) что-то сделали, используя этот IP-адрес, знаете ли вы, где все может выйти из строя? ... что пользователь НЕ вводит IP, чтобы поставить какую-либо ерунду или неполный IP или что-то в этом роде, те, кто программирует, знают, что я имею в виду ... потому что это должно быть запрограммировано, думая, что произойдет даже самое абсурдное О_О.

Именно для того, чтобы избежать этой ситуации, существуют функции или методы для проверки 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 / Баш ... если они положат #! / Bin / ш Это не сработает, я провел почти 2 полных дня, борясь и протестуя, потому что функция не работала, и это было то, что у меня было sh вместо баш хахаха.

Ну больше нечего добавить, для этого есть функции в Питон, Perl и другие языки ... на самом деле, тот, который я вам показываю, - не единственный способ проверить IP-адреса в колотить, но для меня это было очень хорошо, поэтому я делюсь им 🙂

привет


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

8 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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

  1.   эзиток сказал

    Отлично! Очень интересно. Большое спасибо.

    1.    КЗКГ ^ Гаара сказал

      Спасибо за то, что заглянули и прокомментировали

  2.   тарегон сказал

    Большой! теперь давайте попробуем адаптировать это «if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " так что он обнаруживает, когда ipv6 записан плохо ... жестоко ... o_0 беспорядок, который будет помещать HEXadecimal и его 128 бит.

    Конечно, это гипотетический случай, который я поднял 🙂

    1.    КЗКГ ^ Гаара сказал

      Для IPv6 ... блин, я даже не шучу ... отпусти ... если я даже не очень хорошо понимаю, что такое IPv6 (операция), я даже не пытаюсь проверить IP LOL!

      1.    тарегон сказал

        хе-хе, если это правда, страшно подумать об этом, но подход есть 😛

  3.   Алехандро Мора сказал

    Он уже работает, просто запустите ./script, а не sh script.

    1.    КЗКГ ^ Гаара сказал

      Да, конечно, если вы выполните сценарий sh, он попытается интерпретировать его с помощью sh ... вам придется выполнить сценарий bash, чтобы он был таким же, как ./script.sh 😉

  4.   Анатур сказал

    Здравствуйте, спасибо за вашу помощь, это было очень полезно.