Це ще одна порада, яка може допомогти нам у певних ситуаціях. Я роблю цю публікацію більше як нагадування, бо знаю, що мені це колись знову знадобиться ха-ха-ха.
Коли ми робимо якийсь сценарій в бити, а користувач повинен ввести IP-адресу, щоб пізніше ми (сценарій) зробили щось за допомогою цієї IP-адреси, чи знаєте ви, де все може піти не так? ... що користувач НЕ вводить IP-адресу, ставить будь-які дурниці або неповні IP-адреси або щось подібне, ті, хто програмує, знають, що я маю на увазі ... тому що це має бути запрограмовано, думаючи, що трапиться навіть найбезглуздіший O_O.
Саме для того, щоб уникнути цієї ситуації, існують функції або методи для перевірки ІР, тобто для перевірки, чи дані, які користувач ввів, насправді є ІП чи ні.
Тут я їх залишаю:
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 замість баш ха-ха-ха.
Ну нічого іншого додати, для цього є функції для Python, Perl та інші мови ... насправді, ця, яку я вам показую, не є єдиним способом перевірки IP-адрес бити, але для мене це було дуже добре, тому я цим поділяюсь 🙂
привіт
Ідеально! Дуже цікаво. Дуже дякую.
Дякуємо, що завітали та коментували 😀
Чудово! тепер спробуємо адаптувати це "якщо [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " так що він виявляє, коли ipv6 пишеться погано ... жорстоко ... o_0 безлад, який буде ставити шістнадцяткову і його 128 біт.
Звичайно, це гіпотетичний випадок, який я порушив 🙂
До IPv6 ... блін, я навіть не жартую ... пустіть це ... якщо я навіть добре не розумію, що таке IPv6 (робота), я навіть не намагаюся перевірити IP LOL!
хе-хе, якщо це правда, страшно подумати про це, але підхід існує 😛
Це вже працює, просто запустіть ./script, а не sh скрипт.
Так, звичайно, якщо ви зробите сценарій sh, він спробує інтерпретувати його за допомогою sh ... вам доведеться зробити скрипт bash, щоб зробити його таким же, як ./script.sh
Привіт, дякую за вашу допомогу, це було дуже корисно.