The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Не могу разобратся с Bash скриптом, crestfallen (ok), 20-Дек-08, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


3. "Не могу разобратся с Bash скриптом"  +/
Сообщение от Bober (?), 22-Дек-08, 04:00 
>echo "check ip : '$ip'"
>ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}"`

Ню-ню :) По вашему 444.555.666.777 - валидный адрес?

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "Не могу разобратся с Bash скриптом"  +/
Сообщение от angra (ok), 22-Дек-08, 07:03 
А как вообще определить валидный адрес? Если хорошенько задумаетесь над этой проблемой, то поймете что она не решаема в общем виде. Как следсвтие полноценная проверка невозможна и на практике довольствуются частичными критериями, которые определить может лишь постановщик задачи. Так как автор не потрудился изложить свои критерии, то ему был предложен вариант с минимальной проверкой.


Ответить | Правка | Наверх | Cообщить модератору

5. "Не могу разобратся с Bash скриптом"  +/
Сообщение от Pahanivoemail (??), 22-Дек-08, 08:14 
>>echo "check ip : '$ip'"
>>ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}"`
>
>Ню-ню :) По вашему 444.555.666.777 - валидный адрес?

у меня противоположный пример ))
10
192.168

))

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

6. "Не могу разобратся с Bash скриптом"  +/
Сообщение от NuINu (??), 22-Дек-08, 10:17 
>>echo "check ip : '$ip'"
>>ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}"`
>
>Ню-ню :) По вашему 444.555.666.777 - валидный адрес?

данный регэксп проверяет только форму адреса, и не проверяет значения байт.
на самом деле в регэкспе есть другая ошибка.
неправильно проходил проверку адрес
./1.sh 1110.240.1011.254
check ip : '1110.240.1011.254'
Valid IP 1110.240.101
исправляется просто:
ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}"`

но может быть вы предложите свое правильное решение?
более полное

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

7. "а давайте все писать ненужные _нам_ скрипты"  +/
Сообщение от Andrey Mitrofanov (?), 22-Дек-08, 10:37 
>но может быть вы предложите свое правильное решение?
>более полное

Да, кому оно надо-то?! :)))

...
http:/openforum/vsluhforumID12/5394.html#9
Да, в моём варианте диапазон 256-299 "пролезает". А ещё октеты, начинающиеся с 0 и длиннее 1 символа, тож не "отсеиваются".

...perl
if ($string=~/^[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])$/) { }
https://www.opennet.ru/docs/RUS/perl_help/perl_help-perl.html.gz

...awk
awk -F '[.]' 'function ok(n) { >>>и далее= https://www.opennet.ru/tips/info/1811.shtml

Ответить | Правка | Наверх | Cообщить модератору

8. "а давайте все писать ненужные _нам_ скрипты"  +/
Сообщение от NuINu (??), 22-Дек-08, 10:43 
>...perl
>if ($string=~/^[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])\.[01]?\d\d|2[0-4]\d|25[0-5])$/) { }
>https://www.opennet.ru/docs/RUS/perl_help/perl_help-perl.html.gz
>
>...awk
>awk -F '[.]' 'function ok(n) { >>>и далее= https://www.opennet.ru/tips/info/1811.shtml

не-не, это лишнее, регэксп усложнять не надо, надо просто извлечь части(значения октетов)и проверить их на величину от 0 до 255.

Ответить | Правка | Наверх | Cообщить модератору

10. "я ж говорю, ненужные скрипты"  +/
Сообщение от Andrey Mitrofanov (?), 22-Дек-08, 18:45 
>надо просто извлечь части(значения октетов)и проверить их на величину от 0 до 255.

То есть по второй ссылке Вы не "ходили" и хотите это обсудить? B-)

На самом баше, оно, конечно, тоже можно... но получится ещё длиннее и уродливее. Без хотя бы grep -o -- так вообще ужас.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру