LINUX.ORG.RU

Как отключить интерфейс если он получил не тот адрес?

 


0

1

Добрый день. Есть такая задача: при включении компьютера проверять какой адрес он получил, и если он получил адрес не с той сети - предупредить пользователя, а лучше погасить интерфейс, на который этот адрес прилетел. Накидал такой простой скрипт:

getinnet=`ifconfig | grep 192.168 | wc -l`

if [ $getinnet -gt 0 ]; then
	notify-send "NET DETECTED!!!" >/dev/null 2>&1
fi
Вопрос, а как мне с выхлопа ifconfig понять имя интерфейса, на котором у меня данный адрес вылез? Или подскажите есть ли другие решения задачи?


Или подскажите есть ли другие решения задачи?

В таком виде задача непонятна и сильно напоминает https://ru.wikipedia.org/wiki/Проблема_XY Поэтому предлагаю сформулировать изначальную задачу, которую ты пытаешься решить таким методом. Заодно лучше предоставить более полную информацию о конфигурации сети — какие сетевые интерфейса присутствуют, как и через что настроены (networkd, NetworkManager, ifupdown, netplan, rc.net etc), откуда получают адреса.

gremlin_the_red ★★★★★
()

Или подскажите есть ли другие решения задачи?

Очевидное, что «он получил адрес не с той сети» такого быть не должно.

а как мне … понять имя интерфейса, на котором у меня данный адрес вылез

Например, грепать и авкать по такому выводу

ip -o -4 addr list
vvn_black ★★★★★
()
Ответ на: комментарий от gremlin_the_red

В таком виде задача непонятна и сильно напоминает https://ru.wikipedia.org/wiki/Проблема_XY

Вот только проблема всех техподдержек, что они уверены, что проблему Y пользователю решать ни в коем случае нельзя, а надо всё свести к шаблонной проблеме X, которая в конечном итоге в табличке сводится к «перезагрузитесь».

А у ТСа типичное - руками я понимаю что делать, а детерминировано сформулиролировать для написания скрипта - не могу, но не признаюсь, а наверну кучу словесов, из которых непонятно, в чём собственно затык.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Не знаю, какая там проблема у техподдержек, но готов заложить бессмертную душу, что реальная проблема ТС совершенно, ни капельки, абсолютно не требует парсинга ifconfig.

gremlin_the_red ★★★★★
()

Если у тебя в деле NetworkManager, то копать в сторону dispatcher scripts.

debugger ★★★★★
()

если он получил адрес не с той сети - предупредить пользователя

Администратора предупреди.

+1 к запущенному случаю XY-проблемы

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

проблему твою это не решит, но

сначала грепай по (части) имени интерфейса – получишь и его адрес

далее проверяй допустимый ли адрес имеет этот интерфейс

P.S. ifconfig ты сам установил или его дистроразрабы не выпиляли? или у тебя ископаемая виртуалка остановить которую равнозначно физическому разрушению датацентра? )

интересно же

anonymous
()

Лучше покажи конфигурацию сети.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.