コマンドプロンプト：ネットワーク系コマンドまとめ

# コマンドプロンプト：ネットワーク系コマンドまとめ

+ 本ページは、ネットワークエンジニアの自分がよく使う、または今回調べてから使ってみたいと思ったものを記載しています。
+ DOSコマンドを覚えずに毎回調べていて効率が悪いのでまとめました。
+ 新しいコマンドを調べたら随時更新しようと思います。


<br>

## コマンド一覧表（目次も兼ねてます）

[__ネットワーク系コマンド__](#ネットワーク系コマンド)
[ipconfig：IPアドレスの情報を表示する](#ipconfigipアドレスの情報を表示する)
[netsh interface ipv4 show interfaces：インターフェースのMTU値を確認](#netsh-interface-ipv4-show-interfacesインターフェースのmtu値を確認)
[ping：指定先との通信可否を確認する](#ping指定先との通信可否を確認する)
[pathping：指定先までのネットーワークの所要時間を算出する](#pathping指定先までのネットーワークの所要時間を算出する)
[tracert：指定先とのネットワーク経路を調べる](#tracert指定先とのネットワーク経路を調べる)
[netstat：TCP/IP通信の接続状態を調べる](#netstattcpip通信の接続状態を調べる)
[nslookup正引き：ドメイン名からIPアドレスを取得する](#nslookup正引きドメイン名からipアドレスを取得する)
[nslookup逆引き：IPアドレスからドメイン名を取得する](#nslookup逆引きipアドレスからドメイン名を取得する)
[arp：ARPテーブルを表示](#arparpテーブルを表示)
[route：ルーティングテーブルの表示・変更を行う](#routeルーティングテーブルの表示変更を行う)

[__ファイル操作系コマンド__](#ファイル操作系コマンド)
[cd：フォルダの移動](#cdフォルダの移動)
[dir：ディレクトリ内の一覧を表示](#dirディレクトリ内の一覧を表示)
[ftp：FTPサーバと接続してファイルのUP/Down](#ftpftpサーバと接続してファイルのupdown)
[tree：ディレクトリ構造を表示・保存する](#treeディレクトリ構造を表示保存する)
[xcopy：フォルダ構造のみをコピーする(ファイルは不要)](#xcopyフォルダ構造のみをコピーするファイルは不要)

[__その他のコマンド__](#その他のコマンド)
[cls：画面表示のクリア](#cls画面表示のクリア)
[hostname：コンピューター名を表示する](#hostnameコンピューター名を表示する)
[find：コマンド結果からの文字列検索](#findコマンド結果からの文字列検索)
[findstr：コマンド結果からの文字列検索(正規表現使用可)](#findstrコマンド結果からの文字列検索正規表現使用可)
[net config workstation：コンピュータ名、ユーザ名、ワークグループ名等を表示する](#net-config-workstationコンピュータ名ユーザ名ワークグループ名等を表示する)



<br>

## ネットワーク系コマンド

__書式__
コマンド オプション   ※[]で囲っているオプションは必須ではありません

__オプション__
オプション１    内容
オプション２    内容

```terminal:使用例
C:\>コマンド オプション
    # 上記使用例に対するコメントがある場合に記載
```



### ipconfig：IPアドレスの情報を表示する

__書式__
ipconfig [オプション]

__オプション__
無し      ネットワーク設定の簡易表示
/all      ネットワーク設定の詳細表示
/renew    DHCPサーバからのIPv4アドレスのリースを更新
/release  DHCPサーバからのIPv4アドレスのリースを開放

```terminal:使用例
C:\>ipconfig

C:\>ipconfig /all

C:\>ipconfig /renew

C:\>ipconfig /release
```



### netsh interface ipv4 show interfaces：インターフェースのMTU値を確認

__書式__
netsh interface ipv4 show interfaces

```terminal:使用例
C:\>netsh interface ipv4 show interfaces
```



### ping：指定先との通信可否を確認する

__書式__
ping [オプション] <IPアドレス|Hostname>

__オプション__
無し    32バイトのpingを4回実行する
-t      [ctrl + c]で止めるまでpingを続ける
-n x    x回pingを実行する
-w x    xミリ秒応答が無ければTimeoutとする
-l x    パケットのサイズをxバイトにする(既定値32バイト)
-f      フラグメントを許可しない(回線のMTU調査等)

```terminal:使用例
C:\>ping 8.8.8.8

C:\>ping -t 8.8.8.8
    # [ctrl + c]で止める

C:\>ping -n 3 -w 1000 8.8.8.8

C:\>ping -l 1426 -f 8.8.8.8
C:\>ping -l 1427 -f 8.8.8.8
    # 「1472は通るが1473はNG」等を見てMTUサイズを確認する
```



### pathping：指定先までのネットーワークの所要時間を算出する

pingやtracertの機能を拡張したようなコマンドで、ネットワーク経路の通信性調査の他に、遅延時間やパケット喪失なども確認できる。
ただ、経路の表示後に「統計を XXX 秒間計算しています...」と出てなかなか終わらない・・・。

__書式__
pathping [オプション] <IPアドレス|Hostname>

__オプション__
    無し  途中経路含めてドメイン名とIPアドレスを返す
    -n    結果をIPアドレスのみで返す(DNS解決しない)

```terminal:使用例
C:\>pathping -n 8.8.8.8
```



### tracert：指定先とのネットワーク経路を調べる

__書式__
tracert [オプション] <IPアドレス|Hostname>

__オプション__
    無し  途中経路含めてドメイン名とIPアドレスを返す
    -d    結果をIPアドレスのみで返す(DNS解決しない)
    -w x  xミリ秒応答が無ければTimeoutとする


```terminal:使用例
C:\>tracert -d -w 3000 8.8.8.8
```



### netstat：TCP/IP通信の接続状態を調べる

__書式__
netstat [オプション]

__オプション__
無し  TCP/IP通信の接続状態を調べる
-n    ホスト名ではなくIPアドレスで表示する
-a    待ち受け状態のTCPポートも表示する
-o    接続(コネクション)しているPIDも表示する
数字  数字秒毎に表示を更新(10なら10秒毎)、[ctrl + c]で終了

```terminal:使用例
C:\>netstat -n 10
    # 10秒毎に更新、[ctrl + c]で止める

C:\>netstat -ano

C:\>netstat -an | find "ESTABLISHED"
    # ESTABLISHEDを含む行のみ表示
```



### nslookup正引き：ドメイン名からIPアドレスを取得する

__書式__
nslookup <ドメイン名> [DNSサーバ]
  ※使用するDNSサーバを指定する時は後ろへ付けます。

```terminal:使用例
C:\>nslookup www.google.co.jp

C:\>nslookup www.google.co.jp 8.8.8.8
```



### nslookup逆引き：IPアドレスからドメイン名を取得する

__書式__
  ※使用するDNSサーバを指定する時は後ろへ付けます。

```terminal:使用例
C:\>nslookup 8.8.8.8

C:\>nslookup 8.8.8.8 1.1.1.1
```



### arp：ARPテーブルを表示

__書式__
arp オプション

__オプション__
-a  ARPテーブルを表示

```terminal:使用例
C:\>arp -a
```



### route：ルーティングテーブルの表示・変更を行う

__書式__
・ルーティングテーブルの表示
route print

・スタティックルートの追加
route [オプション] add <ネットワーク> mask <サブネット> <ゲートウェイ> [if <インターフェース番号>]
  ※<インターフェース番号>は、route printのインターフェイス一覧に表示されるもの。
  
・スタティックルートの削除
route delete <ネットワーク> mask <サブネット>

__オプション__
無し  再起動すれば追加したルート情報は消える
-p    設定を再起動後(恒久的)にも残す

```terminal:使用例
(使用場面例)
・WiFi(Web閲覧)とLAN(ネットワーク検証環境)の両方へ接続している時に、
　WiFiにデフォゲ持っていかれてLAN側へ入れない・・・時に使ったりしています。

1. 管理者権限でコマンドプロンプトを実行

2. 使用しているLANのインターフェース番号を探す。
C:\>route print
    # "インターフェイス一覧"の頭の番号をチェック。

3. StaticRouteを追加(宛先：172.16.1.0/24、NextHop：192.168.0.254)
C:\>route add 172.16.1.0 mask 255.255.255.0 192.168.0.254 if 9
    # 再起動したら消えて欲しいので、オプションの"-p"は付けない。

4. 「3」は再起動したら消えるけどその前に消したい時
C:\>route delete 172.16.1.0 mask 255.255.255.0
```



<br>

## ファイル操作系コマンド

### cd：フォルダの移動

__書式__
cd オプション

__オプション__
無し        現在居るフォルダの絶対パスを表示
/           Cドライブ直下(C:\)へ移動
\           Cドライブ直下(C:\)へ移動
..          一段上の階層へ移動
フォルダ名  任意のフォルダへ移動

```terminal:使用例
C:\Users>
C:\Users>cd
C:\Users

C:\Users>cd \

C:\>cd C:\Users

C:\Users>cd ..

C:\>
```



### dir：ディレクトリ内の一覧を表示

__書式__
dir [パス] [ファイル名] [オプション] 

__オプション__
無し  ファイルおよびディレクトリに詳細を付けて表示
/b    ファイルおよびディレクトリ名のみを表示
/s    サブディレクトリの中も表示
/o:n  名前順に昇順ソート
/o-n  名前順に降順ソート
/o:s  サイズ順に昇順ソート
/o-s  サイズ順に降順ソート
/o:d  日時順に昇順ソート
/o-d  日時順に降順ソート

```terminal:使用例
C:\>dir
C:\>dir /s
C:\>dir C:\Users /o:n
C:\>dir C:\Users /o-n
```



### ftp：FTPサーバと接続してファイルのUP/Down

__書式__
ftp <FTP serveのIPアドレス>
  ※IDの入力
  ※Passの入力

ascii   転送モードをASCIIにする。(テキスト 等)
binary  転送モードをBINARYにする。(画像や音声 等)

ls FTPサーバのファイルリストを取得

get <欲しいファイル名>
put <送るファイル名>

```terminal:使用例
C:\Users\USERNSME>
C:\Users\USERNSME>ftp 192.168.0.1
    # FTPコマンドを打った時のフォルダへPutファイルを置く、Getファイルがダウンロードされる
192.168.0.1 に接続しました。
220-Welcome To nekosogiFTP !!!
220 Enter Your ID
502 Command not implemented.
ユーザー (192.168.0.1:(none)): anonymous
331 Enter Your Password
パスワード:
230-/_/_/_/_/_/_/_/_/_/_/_/_
230-      Welcome!!!
230-/_/_/_/_/_/_/_/_/_/_/_/_
230 Login OK!!!
ftp>
ftp> ls
ftp> ls
200 PORT command successful.
150 Opening data connection.
.
..
test-1.txt
test-2.txt
226 Transfer complete.
ftp: 34 バイトが受信されました 0.01秒 6.80KB/秒。
ftp> 
ftp> binary
200 Binary Mode
ftp> ascii
200 ASCII Mode
ftp>
ftp> 
ftp> get <欲しいファイル名>
ftp> put <送るファイル名>
ftp> 
ftp> bye
221 Good-Bye

C:\>
```



### tree：ディレクトリ構造を表示・保存する

「このフォルダのLog名をリストにして！サブフォルダもな。」
って言われた時に活躍するコマンドです。

__書式__
tree [パスまたはcdで階層へ行く] [オプション]
    ※ディレクトリ構造を表示する。

tree [パスまたはcdで階層へ行く] [オプション] > <保存ファイル名>
    ※ディレクトリ構造をテキストへ保存する

__オプション__
    無し  拡張文字でフォルダ階層を表示する
    /A    ASCII文字でフォルダ階層を表示する
    /F    ファイル名も追加で表示する

```terminal:使用例
C:\Users\USERNAME\Desktop>tree C:\Users /A
C:\Users\USERNAME\Desktop>tree /A /F > tree.txt
```



### xcopy：フォルダ構造のみをコピーする(ファイルは不要)

以前に使った案件のフォルダ構造をコピーしたいけど、ファイルは要らないなぁ。
って時に活躍するコマンドです。

__書式__
xcopy /t コピー元 コピー先

```terminal:使用例
C:\>xcopy /t C:\Users\USERNAME\Downloads C:\copy

C:\Users\USERNAME\Downloads>xcopy /t . C:\copy
```


<br>

## その他のコマンド

### cls：画面表示のクリア

__書式__
cls

```terminal:使用例
C:\>cls
```

<br>

### hostname：コンピューター名を表示する

__書式__
hostname

※表示されるのは、<コントロール パネル\システムとセキュリティ\システム>で表示される「コンピューター名」

```terminal:使用例
C:\>hostname
PC-NAME
C:\>
```

<br>

### find：コマンド結果からの文字列検索

__書式__
コマンド | find [オプション] "検索文字列"

__オプション__
無し      検索文字列を含む行を表示(ciscoのinclude)
/V        検索文字列を含まない行を表示(ciscoのexclude) 
/C        検索文字列を含む行数を表示 
/N        行番号を表示 
/I        大文字と小文字の区別をしない 

```terminal:使用例
C:\>netstat -an | find "ESTABLISHED"
C:\>netstat -an | find /I /N "established"
C:\>netstat -an | find /I /V "established"
```

<br>

### findstr：コマンド結果からの文字列検索(正規表現使用可)

__書式__
コマンド | findstr [オプション(任意)] 検索文字列

__オプション__
無し      検索文字列を含む行を表示(ciscoのinclude)
/V        検索文字列を含まない行を表示(ciscoのexclude) 
/C        検索文字列を含む行数を表示 
/N        行番号を表示 
/I        大文字と小文字の区別をしない
/X        完全一致する行(検索文字列を" "で囲う)

__条件指定__
・OR
コマンド | findstr [オプション(任意)] "検索文字列1 検索文字列2"
    ※" "内に検索文字列を半角スペースで区切って追加していく。
    ※" "を付けずに半角スペースを付けると、２つ目を「ファイル名」だと認識する

・AND
コマンド | findstr [オプション(任意)] 検索文字列1 | findstr [オプション(任意)] 検索文字列2

・NOT

コマンド | findstr /V 検索文字列




```terminal:使用例
C:\>netstat -an | findstr EST.*

C:\>netstat -an | findstr /I /N established

C:\>netstat -an | findstr "ESTABLISHED LISTENING"
    # OR条件・・・「ESTABLISHED」か「LISTENING」を含む行

C:\>netstat -an | findstr ESTABLISHED | findstr 127.0.0.1
    # AND条件・・・「ESTABLISHED」と「127.0.0.1」を含む行

C:\>netstat -an | findstr /V ESTABLISHED
    # NOT条件・・・「ESTABLISHED」を含まない行
```

<br>

### net config workstation：コンピュータ名、ユーザ名、ワークグループ名等を表示する

__書式__
net config workstation

```terminal:使用例
C:\>net config workstation
コンピューター名                                  \\LAPTOPPC
フル コンピューター名                             LaptopPC
ユーザー名                                        mail@mail.com

アクティブなネットワーク (ワークステーション)
        NetBT_Tcpip_{**********} (**********)
        NetBT_Tcpip_{**********} (**********)

ソフトウェア バージョン                           Windows 10 Home

ワークステーション ドメイン                       WORKGROUP
ログオン ドメイン                                 MicrosoftAccount

COM デバイス オープン タイムアウト (秒)           0
COM デバイス送信バイト数 (バイト)                 16
COM デバイス送信タイムアウト (ミリ秒)             250
コマンドは正常に終了しました。

C:\>
```

<br>






end