ネットにつながらない時に使ってほしい「pingコマンド」とオプション紹介

# はじめに
えか太郎とです。JK（情報大好き高校生）です。本日はインターネット接続に問題が起こった時に原因究明のためにぜひ使ってほしい「pingコマンド」の使い方とその解説になります。そのコマンドのエラーから原因を推測したり、接続の安定性を検証するのに非常に便利ですので私もよく使います。

追記：私はマークダウンでコードを表示させるのは初めてなので分かりにくいところがあるかもしれません。その時は編集リクエストをお願いします。
# What is ping command?
pingコマンドについて説明していきます。動作環境は「Windows10 Pro」でプリインストールされている「コマンドプロンプト」で実行できます。

![スクリーンショット (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120367/8efa0bda-79b1-3d8d-85a6-05ec2d0c30fa.png)

「Windowsの検索ボックスで"cmd"と入力」するとコマンドプロンプトを開くことができます。
また、本記事では触れませんが「ファイル名で実行」で"cmd"と入力する方法や、windowsシステムツール一覧から開くことも可能です。
## pingコマンドの概要
説明しよう！pingコマンドとは通信相手に対してネットワークが接続しているかを確認するコマンドだ！

ようするにテスト用のデータを指定したIPアドレスに送信してそのデータが正しく送ることができたかどうかによって途中経路で引っかかったのかや、指定したIPアドレスのデバイスの存在の有無を確認することができます。また往復にかかった時間やパケットロスの割合なども知ることができます。

## pingコマンドの使い方
これからは具体的な使い方の説明に進みます。前述したとうりコマンドプロンプトに入力します。以下が基本構文です。

```
ping　（オプションでの設定をいろいろ入力する）　xxx.xxx.xxx.xxx　
```

### 接続先の設定
``` 
ping  xxx.xxx.xxx.xxx
```
xxx.xxx.xxx.xxxにはつながっているか確認したいデバイスのIPアドレスを指定します。例えばあなたの使用しているPCのアドレスが192.168.68.20。ルーターのアドレスが192.168.68.1であったとします。PCとルーター間で通信ができているかを確認したいときxxx.xxx.xxx.xxxにはルーターのアドレスである192.168.68.1が入ります。
#### グローバルIPの指定
LAN内部だけではなくLANがLANと接続できるかを確認することもできます。要するに
xxx.xxx.xxx.xxxの中にはプライベートIPアドレスだけではなくグローバルIPアドレスも入力することができます。例えば「PC<==>ルーター<==>Google」の経路間に問題がないか確認する場合には8.8.8.8とGoogleのDNSアドレスをいれることでPC<==>Google間の経路をチェックできます。
![スクリーンショット (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120367/d507a74a-b624-9998-0a9c-cb0733ba2afc.png)

## 頻繁に使用するオプションの設定について
pingコマンドはより詳しく設定を追加することができます。
例えば、送信するパケットの数は標準の４回を変更したり、常時送り続ける設定にしたりすることもできます。オプション設定を入力するのは「ping」以後であればどこでも構いません。以下のコマンドはどちらも正常に動作します。
```
ping -t 8.8.8.8
ping 8.8.8.8 -t
```
### 常時送り続ける「-t」
pingコマンドをずっと送り続けたいときってありますよね。そんな時は以下のように「-t」を追加してください。「Ctrl＋C」を押すと停止します。
```
ping -t 8.8.8.8
```
実行結果
![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120367/13adb6f7-930e-ff38-58ea-43c81b11365a.png)


### パケットの数を具体的に指定する「-n」
具体的に指定することもできます。-nの後に半角スペースを入れるのを忘れないようにしてください。また、以下どちらも正常に動作します。

```
ping x.x.x.x -n [具体的なパケの数]

ping  -n [具体的なパケの数]　x.x.x.x
```
#### 実行結果
![スクリーンショット (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120367/bfb93974-f4f6-a373-edd0-5a9c8cfb6e52.png)
半永久的に送り続けます。しかしそこまで重い処理ではないので常時バックグラウンド動作していても特段影響はないです。私のCeleronの低スぺPCでも体感できませんでした。


### その他のオプションについて
ほかにも意味わからんぐらいいっぱいありますが実生活においてこれくらいしか使ったことはありません。より専門的なオプションが知りたいなら以下のIBMのドキュメントが詳しく載ってました。

https://www.ibm.com/docs/ja/power7?topic=POWER7/p7hcg/ping.html

# 最後にping統計の結果の見方
以下の例を参考に説明します。以下の例は私のPCから家のルーター間の確認のためにpingコマンドを使用したという状況です。
![スクリーンショット (13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120367/504be4bd-af11-62c8-7110-efaafd7b938b.png)
順に見方を説明していきます。
#### 8.8.8.8のping統計
* 送信　＝　４
＞送信に成功したパケットの数。オプションで変更可。標準では４回
* 受信　＝　４
＞8.8.8.8から正常に返信されたパケットの数。最大値は「送信　＝」の値。
* 損失　＝　０
＞8.8.8.8から正常に返信されなかったパケットの数。
* （N%の損失）
＞送信したパケットの数のうち受信できたパケットの数の割合。例えば、4回送信して３回受信した場合には「75％の損失」となる。
#### バックグラウンドトリップの概算時間（ミリ秒）
そもそもバックグラウンドトリップの概算時間とはパケットを送信してそのパケットを正常に受信できるまでにかかった時間のことです。これが早いほど応答速度が速いということになります。
* 最小　＝　18ms
* 最大　＝　21ms
* 平均　＝　19ms
＞今回の例では4回パケットを送信しそれぞれ｛18ms、19ms、21ms、19ms｝でしたのでこの4つの数値の最小最大平均が表示されています。一般的には100ms以下であれば十分快適なレスポンスといえるでしょう。

# 最後に
今回はpingコマンドの使用方法とオプションの設定について書きました。続編としてpingコマンドのエラーと解決法という記事もあるのでぜひご覧ください。

https://qiita.com/EkaTaro3/items/a111d6cb13e848a4fac1