我正在使用 Linux Mint 17,正在制作康基脚本。我希望它显示我所连接的路由器/接入点的主机名。我只是不知道获取它的 Linux 命令。
答案1
编辑:刚刚意识到请求是关于康基发布这个基于 Bash 的答案后,请指定特定脚本。将其留在这里以防万一有用。
路由器的主机名?这肯定是不可能的,因为大多数网关都没有分配主机名,甚至没有给出主机名。但您可以使用以下方式获取 IP 地址route
通过管道grep
和awk
像这样:
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}