在bash中检测网络设备的名称?


12

我正试图鼓吹一个黑客,该黑客将通过bash在其计算机上输出活动网络设备的名称。我正在上班。我该怎么做呢?我不想简单地使用“ wlan0”或“ eth0”或任何通用废话,因为某些操作系统使用不同的名称(例如pfSense)。

Answers:


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 -sifconfig打印活动接口,-a您可以打印系统识别为网络接口的所有接口。

或使用ip addr


0

我可能不直接知道答案,但是我会给您一份网络命令列表,也许您可​​以从那里尝试将其与需要执行的操作连接起来。

要查看网络并在单台计算机上输出活动网络设备的名称,可以尝试以下命令:

ifconfig

此命令使我们能够检测到活动的网络设备。您也可以将ifconfig -s命令用于较小的输出用途。您可以使用此命令来配置特定的接口

ip addr

此命令使我们可以查看网络网络信息。

tcpdump

此命令是网络嗅探器。它的作用是从网络接口捕获数据包并为您解释它们。

如果您收到拒绝权限的消息,只需:**gksu yourcommand**为它获得root权限并强制执行该命令。

findsmb

您可以使用此命令列出有关响应SMB名称查询的计算机的信息。

来源:http//www.gymforgeeks.com/topic/358445-/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.