Это еще один совет, который может помочь нам в определенных ситуациях. Я делаю этот пост скорее как напоминание, потому что знаю, что он мне понадобится в какой-то момент снова, хахаха.
Когда мы делаем сценарий в колотить, и пользователь должен ввести 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-адреса в колотить, но для меня это было очень хорошо, поэтому я делюсь им 🙂
привет
Отлично! Очень интересно. Большое спасибо.
Спасибо за то, что заглянули и прокомментировали
Большой! теперь давайте попробуем адаптировать это «if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " так что он обнаруживает, когда ipv6 записан плохо ... жестоко ... o_0 беспорядок, который будет помещать HEXadecimal и его 128 бит.
Конечно, это гипотетический случай, который я поднял 🙂
Для IPv6 ... блин, я даже не шучу ... отпусти ... если я даже не очень хорошо понимаю, что такое IPv6 (операция), я даже не пытаюсь проверить IP LOL!
хе-хе, если это правда, страшно подумать об этом, но подход есть 😛
Он уже работает, просто запустите ./script, а не sh script.
Да, конечно, если вы выполните сценарий sh, он попытается интерпретировать его с помощью sh ... вам придется выполнить сценарий bash, чтобы он был таким же, как ./script.sh 😉
Здравствуйте, спасибо за вашу помощь, это было очень полезно.