如何获取我所连接的路由器/接入点的主机名?

如何获取我所连接的路由器/接入点的主机名?

我正在使用 Linux Mint 17,正在制作康基脚本。我希望它显示我所连接的路由器/接入点的主机名。我只是不知道获取它的 Linux 命令。

答案1

编辑:刚刚意识到请求是关于康基发布这个基于 Bash 的答案后,请指定特定脚本。将其留在这里以防万一有用。

路由器的主机名?这肯定是不可能的,因为大多数网关都没有分配主机名,甚至没有给出主机名。但您可以使用以下方式获取 IP 地址route通过管道grepawk像这样:

route | grep "default" | awk '{ print $2 }'

这将清楚地为您提供路由器的原始 IP 地址。现在,如果您想要 MAC 地址,只需使用arp并且该命令再次与grep和混合在一起:awk

arp -a | grep $(route | grep "default" | awk '{ print $2 }') | awk '{ print $4 }'

如果您想将这些值分配给 Bash 变量,只需对路由器 IP 地址执行以下操作:

ROUTER_IP=$(route | grep "default" | awk '{ print $2 }')

对 MAC 地址执行如下操作:

ROUTER_MAC=$(arp -a | grep $(route | grep "default" | awk '{ print $2 }') | awk '{ print $4 }')

然后,您可以通过引用$ROUTER_IP和来使用这些指定的值$ROUTER_MAC。就像您刚才运行这两个变量赋值echo一样,只需从命令行运行以下命令:

echo $ROUTER_IP
echo $ROUTER_MAC

答案2

主机名和ESSID是两个不同的东西。

但如果你使用康基并希望ESSID它是这样的:

${offset 60}${font Ubuntu:size=12,weight:normal}${color1}Wlan0: ${wireless_essid wlan0}

因为现在我很清楚您实际上指的是 AP 的外部 IP 的主机名,而不是主机名和 ESSID 的混淆。

您可以创建一个脚本并将其放在您的.conky/script目录中

mkdir ~/.conky/scripts

gedit ~/.conky/scripts/hostname.sh

#!/bin/bash
dig +short myip.opendns.com @resolver1.opendns.com | xargs dig +short -x

使其可执行chmod +x ~/conky/scripts/hostname.sh

添加到你.conkyrc类似的东西

${offset 60}${font Ubuntu:size=12,weight:normal}${color1}Hostname: ${execi 10000 ~/.conky/scripts/hostname.sh}

相关内容