Linux Mint 17を使用していて、 Conky スクリプトを作成しています。接続しているルーター/アクセスポイントのホスト名を表示したいのですが。それを取得するためのLinuxコマンドがわかりません。
編集:リクエストが Conky このBashベースの回答を投稿した後の特定のスクリプト。役に立つ場合に備えて、ここに残しておきます。
ルーターのホスト名?ほとんどのゲートウェイにはホスト名が割り当てられていないか、ホスト名を提供していないため、これが不可能であることは間違いありません。ただし、 route
パイプを介して grep
および awk
を使用してIPアドレスを取得できます。このような:
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
を参照することにより、これらの割り当てられた値を使用できます。これらの2つの変数割り当てを今実行した場合と同様に、次のようにコマンドラインからこれらのecho
コマンドを実行します。
echo $ROUTER_IP
echo $ROUTER_MAC
ホスト名とESSID
は2つの異なるものです。
しかし、 Conky を使用していて、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}