Виявлення імені мережевого пристрою в bash?


12

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

Відповіді:


28

Це залежить від того, що ви маєте на увазі під "активним" - якщо ви просто хочете побачити назви всіх мережевих пристроїв у системі, ви можете переглянути вміст каталогу / 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 - Забава з мережевим менеджером


2

Ви можете використовувати ifconfigдля виявлення активних мережевих пристроїв для трохи меншого використання виводу ifconfig -s. ifconfigдрукує активні інтерфейси, -aви можете друкувати всі інтерфейси, які система визнає мережевими інтерфейсами.

Або використовувати ip addr.


0

Я, можливо, не знаю відповіді безпосередньо, але я надам вам список мережевих команд, і, можливо, звідти ви можете спробувати з'єднати його з тим, що вам потрібно зробити.

Щоб переглянути мережі та вивести ім'я активних мережевих пристроїв на одному комп’ютері, можна спробувати наступні команди:

ifconfig

Ця команда дозволяє виявляти активні мережеві пристрої. Ви також можете використовувати команду ifconfig -s для меншого використання виводу. Ви можете використовувати цю команду для налаштування певного інтерфейсу

ip addr

Ця команда дозволяє нам переглядати мережеву мережеву інформацію.

tcpdump

Ця команда є мережевим sniffer. Що він робить - це захоплення пакетів з мережевого інтерфейсу та інтерпретування їх для вас.

Якщо ви коли-небудь отримаєте повідомлення про відмову в дозволі, просто: **gksu yourcommand**для нього отримати root права та змусити команду.

findsmb

За допомогою цієї команди можна перераховувати інформацію про машини, які відповідають на запити імен SMB.

Джерело: http://www.gymforgeeks.com/topic/358445-/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.