web-dev-qa-db-ja.com

接続しているルーター/アクセスポイントのホスト名を取得するにはどうすればよいですか?

Linux Mint 17を使用していて、 Conky スクリプトを作成しています。接続しているルーター/アクセスポイントのホスト名を表示したいのですが。それを取得するためのLinuxコマンドがわかりません。

1
leetwanker

編集:リクエストが 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
2
JakeGould

ホスト名と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}
0
Nodak