LINUX.ORG.RU
ФорумAdmin

Как определить , какой сетевой интерфейс я(или Wi-Fi) использую?e.g.: eth, wls1, lo, ens etc.

 


1

2

Нужно сделать, чтобы скрипт находил автоматически либо используемый в данный момент интерфейс, либо, в крайнем случае, использующий Wi-Fi

У меня особых идей нет, кроме как собрать огромную базу интерфейсов, и чтобы он из них отбирал нужные. Но это утопия.



Последнее исправление: kramh (всего исправлений: 3)

Ответ на: комментарий от kramh

скорее sed или awk если только интерфейс нужен.
А не прав, можно же еще cut использовать.
Да и дэфолтный может быть не один, тебе нужен с наименьшей метрикой.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 2)
Ответ на: комментарий от anc

Почему? Оно выдает имя интерфейса, на котором расположен шлюз с наименьшей метрикой. Конечно, если ТС юзает специфическую маршрутизацию или прокси, то оно ему покажет не то.

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

Нет оно выдаст вторую строку в /proc/net/route которая ни к метрике ни к шлюзу по умолчанию может не иметь отношения, без всякой «специфичной» маршрутизации.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от Chaser_Andrey

Если уж пошла такая «пьянка»:

ip ro sh to 0/0 | awk '{print $5,$8}' | sort -n  -k 2 | awk 'NR==1 {printf ($1)}'

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

Ок, возможно это было совпадение, что оно у меня сортирует правильно. Я почитал сорцы net/ipv4/fib_trie.c, и там просто последовательный вывод struct seq_file* в функции fib_route_seq_show, но как заполняется эта структура - я пока не нашел.

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

Посмотрел на нескольких системах, везде в конце кроме одной «3.2.0-4-486 #1 Debian 3.2.68-1+deb7u3 i686 GNU/Linux» на ней было первой строкой.

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

Забыл приписать, если несколько метрик то с меньшей не самая последняя.

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