Я пытаюсь получить взлом, который выведет имя активных сетевых устройств на компьютер через bash. Я делаю это для работы. Как мне это сделать? Я не хочу просто использовать "wlan0" или "eth0" или что-либо из этого общего дерьма, потому что некоторые ОС используют разные имена (например, pfSense).
Это зависит от того, что вы подразумеваете под «активным» - если вы просто хотите увидеть имена всех сетевых устройств в системе, вы можете посмотреть на содержимое каталога / 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
. Вы можете использовать ifconfig
для обнаружения активных сетевых устройств, для немного меньшего выходного сигнала использовать ifconfig -s
. ifconfig
печатает активные интерфейсы, с -a
вы можете распечатать все интерфейсы, которые распознаются системой как сетевые интерфейсы.
Или используйте ip addr
.
Возможно, я не знаю ответа напрямую, но я дам вам список сетевых команд, и, возможно, оттуда вы можете попытаться связать его с тем, что вам нужно сделать.
Для просмотра сетей и вывода имени активных сетевых устройств на одном компьютере вы можете попробовать следующие команды:
ifconfig
Эта команда позволяет нам обнаруживать активные сетевые устройства. , Вы также можете использовать команду ifconfig -s для меньшего использования вывода. Вы можете использовать эту команду для настройки определенного интерфейса
ip addr
Эта команда позволяет нам просматривать информацию о сети.
tcpdump
Эта команда является анализатором сети. Что он делает, так это захватывает пакеты с сетевого интерфейса и интерпретирует их для вас.
Если вы когда-нибудь получите сообщение об отказе в разрешении, просто: **gksu yourcommand**
, чтобы оно получило права доступа root и применило команду.
findsmb
Вы можете использовать эту команду для вывода информации о машинах, которые отвечают на запросы имен SMB.