Обнаружение имени сетевого устройства в bash?

Я пытаюсь получить взлом, который выведет имя активных сетевых устройств на компьютер через bash. Я делаю это для работы. Как мне это сделать? Я не хочу просто использовать "wlan0" или "eth0" или что-либо из этого общего дерьма, потому что некоторые ОС используют разные имена (например, pfSense).

12
задан 28 December 2013 в 22:32

3 ответа

Это зависит от того, что вы подразумеваете под «активным» - если вы просто хотите увидеть имена всех сетевых устройств в системе, вы можете посмотреть на содержимое каталога / sys / class / net, например

.
$ ls /sys/class/net
eth0  lo  wlan0

Чтобы увидеть статус, вы можете использовать команду ip для любых link объектов - вы можете проанализировать вывод, чтобы получить конкретные поля, которые вы хотите, например. чтобы увидеть только имя и состояние устройства

$ ip -o link show | awk '{print $2,$9}'
lo: UNKNOWN
eth0: DOWN
wlan0: UP

Если вы используете современную настольную версию Ubuntu (с интерфейсами, управляемыми службой администратора сети), то вы сможете получить аналогичное состояние устройства составьте список, используя nmcli

$ nmcli dev status
DEVICE     TYPE              STATE
wlan0      802-11-wireless   connected
eth0       802-3-ethernet    unavailable

или, чтобы ограничить вывод определенными полями таким образом, чтобы его было проще использовать в скрипте

$ nmcli --terse --fields DEVICE,STATE dev status
wlan0:connected
eth0:unavailable

Если вы используете сетевой менеджер, Вы также можете получить доступ к устройству и свойствам подключения через DBUS - см., например, Учебное пособие по Dbus - Fun with Network Manager

.
0
ответ дан 28 December 2013 в 22:32

Вы можете использовать ifconfig для обнаружения активных сетевых устройств, для немного меньшего выходного сигнала использовать ifconfig -s. ifconfig печатает активные интерфейсы, с -a вы можете распечатать все интерфейсы, которые распознаются системой как сетевые интерфейсы.

Или используйте ip addr.

0
ответ дан 28 December 2013 в 22:32

Возможно, я не знаю ответа напрямую, но я дам вам список сетевых команд, и, возможно, оттуда вы можете попытаться связать его с тем, что вам нужно сделать.

Для просмотра сетей и вывода имени активных сетевых устройств на одном компьютере вы можете попробовать следующие команды:

ifconfig

Эта команда позволяет нам обнаруживать активные сетевые устройства. , Вы также можете использовать команду ifconfig -s для меньшего использования вывода. Вы можете использовать эту команду для настройки определенного интерфейса

ip addr

Эта команда позволяет нам просматривать информацию о сети.

tcpdump

Эта команда является анализатором сети. Что он делает, так это захватывает пакеты с сетевого интерфейса и интерпретирует их для вас.

Если вы когда-нибудь получите сообщение об отказе в разрешении, просто: **gksu yourcommand**, чтобы оно получило права доступа root и применило команду.

findsmb

Вы можете использовать эту команду для вывода информации о машинах, которые отвечают на запросы имен SMB.

Источник: http://www.gymforgeeks.com/topic/358445-/

0
ответ дан 28 December 2013 в 22:32

Другие вопросы по тегам:

Похожие вопросы: