linux - 如何通过bash获取当前连接网络的BSSID?

标签 linux bash

我正在制作一个小脚本,它需要我的计算机当前连接到的无线网络的 BSSID,并将其存储在一个变量中。 如果我的问题很奇怪,我很抱歉——我对 bash 很陌生——但我想知道这样的事情是否可能? 非常感谢。

最佳答案

实用程序 iwconfig 将在界面报告的第二行中将 BSSID 显示为“接入点”。例如在我的系统中:

wlp2s0    IEEE 802.11  ESSID:"My WIFI"
          Mode:Managed  Frequency:2.437 GHz  Access Point: 12:34:56:78:9A:BC
          Bit Rate=1 Mb/s   Tx-Power=15 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=31/70  Signal level=-79 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:719  Invalid misc:1972   Missed beacon:0

你可以过滤掉它,用

iwconfig wlp2s0 | sed -n 's/.*Access Point: \([0-9\:A-F]\{17\}\).*/\1/p'

显然,如果 wlp2s0 与您的接口(interface)名称不同,请将其替换。如果你想将它保存到一个变量中,只需将所有行放入 $() 并将其分配给你想要的变量:

BSSID=$(iwconfig wlp2s0 | sed -n 's/.*Access Point: \([0-9\:A-F]\{17\}\).*/\1/p')

关于linux - 如何通过bash获取当前连接网络的BSSID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173991/

相关文章:

c# - 跟踪套接字(文件)描述符回到绑定(bind)地址

使用子进程获取 PID 并从其所在目录外部启动时杀死它的 Python 脚本表现得很奇怪

linux - udevadm 与 linux 热插拔

linux - linux 内核如何处理对/sys/power/state 的写入

linux - 如何在解析数据之前替换字符

linux - 这个 bash 文件名提取技术的用途?

Java进程占用越来越多的内存

linux - 比较 2 个文件时进行 Bash shell 脚本检查

bash - 在 Bash 中使用变量作为函数参数

bash - 执行描述 shell 命令的字符串数组