@DjimiDjimi

Как сраввнить IP адрес по заданой маске?

Как сравнить в bash ip с маской в моем случай чтобы ip имел адрес 192.168.10.*?
Например что переменная $ip равна 192.168.10.5, а не 127.0.0.1.
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 5
firedragon
@firedragon
Senior .NET developer
ставьте ipcalc поможет

но в вашем случае
192.168.10.0/24
Ответ написан
@q2digger
сисадмин
Для debian когда то была такая утилита www.pc-tools.net/unix/grepcidr
Может поможет.
Ответ написан
Ну как-то так, PATTERN для grep/egrep сами додумайте под свои условия
[avx@localhost ~]$ ip=192.168.10.5 
[avx@localhost ~]$ mask=192.168.10.[0-9]
[avx@localhost ~]$ echo $ip | egrep $mask
192.168.10.5
Ответ написан
AlexeyKolodchenko
@AlexeyKolodchenko
sudo cat /dev/ass | grep “the Adventure”
ip=192.168.10.5
fourth_octet=`echo $ip | awk -F "." '{print $4}'
echo $fourth_octet
так Вы узнаете четвёртый октет IP адреса, дальше можете сравнивать его с чем угодно...
Ответ написан
xotkot
@xotkot
хорошо есть и хорошо весьма
echo $ip | awk '/^192.168.10.[0-9]+$/'
выведет ip подходящий под условие, а при несоответствии условию - пустое значение

маску можно вынести отдельно:
mask='192.168.10.'
echo $ip | awk '/^'$mask'[0-9]+$/'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы