記事

Raspberry Piでコマンドをゆっくりマスタしよう (13) ping IPアドレス

ネットワーク上のマシンの存在を確認

ping

 インターネットにつながっているマシンは、pingに対して返事をします。そのマシンが稼働中かどうかを確認できる便利なコマンドです(セキュリティ上の対策で返事を返さないという設定をしていないマシンを除く)。

 次の画面は、www.microsoft.comへpingした例です。もし先方がダウンしていた場合、Unreachableになります。

ネットワークの接続状況を表示するtraceroute

 例えば、www.microsoft.co.jpというホストまで、どういうルートで到達しているかを調べるコマンドです。しかし、世界中にサーバを分散したり、サービスを世界中に分散してサポートする会社に依頼しているなどして、大きな会社のホストへの経路は、調べても意味がない場合が増えています。また、管理上応答を禁止していて、*印が表示しているところも増えています。

 家庭内LANではダム・ハブが使われています。tracerouteはルータを通るたびにUDPパケットを出しながら次のルータを探し、ルータにつけられた名称を表示します。したがって、家庭内で実行しても、ネットワーク機器は直接つながっていると表示されます。

 外部のインターネットのホストへの経路を表示したとき、最初に表示されるのは、契約しているプロバイダの設置したルータで、多くは、IPアドレスの最後の数字を1にしています。デフォルト・ゲートウェイと呼ばれます。その先は、プロバイダのルータや高速なスイッチングハブの名称が続きます。

家庭内機器のIPアドレスはDHCPサーバから割り当てられる

 会社では、社内のプライベートIPアドレスは管理者が設定しています。家庭内では、インターネット・プロバイダからレンタルしているルータでDHCPサーバが動いています。DHCPサーバは、家庭内LANにつないだ機器に対して自動的にIPアドレスやDNSサーバのアドレスをふります。

●割り当てられたIPを知る方法

GUI上で表示

 画面右上のPCの形をしたアイコンの上にマウスを持っていきます。

 そうすると、有線LANであればeth0、 無線LANであれば、wan0にIPアドレスが表示されます。

コマンドで表示

 ターミナルでは、ifconfigコマンドでIPアドレスが表示されます。eth0は有線LANです。

 ipコマンドでもIPアドレスが表示されます。

音声でお知らせ

 HDMIのディスプレイを表示していないときにIPアドレスを知るために、音声でIPアドレスをアナウンスできるようにします。

 AquesTalkPiという個人で使用するときには無償で提供されているソフトウェアをインストールして使います。このソフトウェアは、Raspberry Piで音声合成をします。これ以外にも利用できる音声合成ソフトはあります。

 ダウンロードは下記のURLから行います。

  http://www.a-quest.com/products/aquestalkpi.html

 「Download」の項目にある「同意してDownload」を押し、AquesTalk Pi Ver.1.00 (aquestalkpi-20130827.tgz 3,880,822 byte)をダウンロードします。

 ダウンロードが完了すると、圧縮ファイルを展開(解凍)するユーティリティが起動します。

 ファイルメニューのアクションから展開を選びます。

 展開する場所は、ダウンロードしたディレクトリなので、一つ上の/home/piに変更して、右下の「展開」ボタンをクリックします。

 ファイルマネージャで、ホームフォルダに作られたaquestalkpiフォルダをダブルクリックして内容を見ます。ダウンロードした圧縮ファイルは解凍されてアプリケーションや辞書が入っています。

 ターミナルを起動し、

cd aquestalkpi  #aquestalkpiのフォルダに入る

./AquesTalkPi "IP" | aplay  # IP(アイ・ピー)としゃべる

 HDMIディスプレイのスピーカから「アイ・ピー」と声が出ます。これで、音声の読み上げのテストが完了しました。

 次に、IPアドレスを取得し、しゃべるようにします。メニューのアクセサリからTextEditorを起動します。次のシェル・プログラムを入力します。保存名はiptalk.shで、保存先はpiフォルダです。

#!/bin/bash
echo 'IPアドレスは' | /home/pi/aquestalkpi/AquesTalkPi -f - | aplay
hostname -I | /home/pi/aquestalkpi/AquesTalkPi -f - | aplay

 ターミナルで、ホームに戻り、

ls -l

 作成したテキスト・ファイルを確認します。そして、chmodコマンドで実行権をつけます。lsコマンドで、実行権のxがついているのを確認します。

sudo chmod 755 iptalk.sh

 実行して、IPアドレスがアナウンスされることを確認します。

./iptalk.sh

 これを、OSが立ちがる途中に実行するように設定します。ターミナルで、エディタnanoを起動します。編集するファイルは/etcフォルダにあるrc.localです。このファイルは、OSが立ち上がる流れの最後のほうで呼び出されます。

sudo nano /etc/rc.local

 exit 0と書かれた最後の行の一つ上の行に /home/pi/iptalk.sh と追加し、CTRL+oで保存し、CTRL-xで終了します。

 再起動します。しかし、「IPアドレスは」としかしゃべらず、IPアドレスは聞こえてきません。この理由は、iptalk.shが実行された時点で、IPアドレスがまだDHCPサーバからふられていないためです。時間稼ぎをするため、「IPアドレスは」を3回繰り返すと、IPアドレスが聞こえてきました。

連載メニュー Raspberry Piでシェル・コマンドをゆっくりマスタしよう

(1) pwd いま、私はどこにいるの?

(2) df あといくつ空いている?

(3) cd ディレクトリ間をうろうろする

(4) cat ファイルの内容を表示

(5) top ps kill プロセスの表示、削除

(6) scrot  画面キャプチャ

(7) CPUの温度

(8) ifconfig ip iw 私のIPアドレス

(9) apt-getで日本語化

(10) ls dir lsusb ディレクトリ情報、USB機器の接続状況

(11) nano テキスト・エディタ

(12) GPIOポートをアクセスするgpio コマンド

(13) ping IPアドレス