家のWi-Fiに何台つながっているのかは、ルーターの管理画面を開けば分かる。ただ、ログイン情報を探して接続一覧のページにたどり着くまでに手間がかかる。iPhoneのSockettaなら、同じネットワークの機器のうち指定したTCPポートに応答したものを、1分ほどで一覧にできる。App Storeの掲載画面に出ている6台の例をもとに、手順と読み方を追う。
01 / STEPSLANスキャンを1回走らせる
自分のIPアドレスを控える
Wi-FiタブのInfoに、インターフェース・IPアドレス・サブネットマスク・ルーターの4行が出る。例では IPアドレスが 192.168.1.23、サブネットマスクが 255.255.255.0。iPhoneの「設定 › Wi-Fi › 接続中のネットワークの (i)」でも同じ値が見られる。
Scannerタブで Mode を LAN にする
このモードは /24 を前提にしているので、例のようにマスクが 255.255.255.0 なら Base IP には自分のIPアドレスの最後の数字を0にしたもの(192.168.1.0)を入れる。Range は既定の 1〜254 のまま。ポート欄は既定で 22,80,443,8080 が入っている。
Start LAN Scan
初回はiOSが「ローカルネットワーク上のデバイスの検索および接続」の許可を求めるので許可する。アプリは 192.168.1.1 から 192.168.1.254 までの254個の番号へ、最大50本同時にTCP接続を試みる。1つの番号あたりの待ち時間は既定で2.0秒。応答があった番号だけが Discovered Hosts に残る。
一覧を読む
各行は「IPアドレス/ホスト名/Open: 開いていたポート番号」の3段。ホスト名の行は出ないことも多い(理由は後述)。行を長押しすると Copy IP でアドレスをコピーできる。
02 / READ掲載画面の6台を読む
App Storeの掲載画面では、次の6台が表示されている。番号と開いているポートは、それぞれが何の機器かを推測する手掛かりになる。
| ポート | 役割 | そこから分かること |
|---|---|---|
| 53 | DNS | TCPの53で待ち受けている。DNSの可能性があり、家庭ではルーターのDNS中継であることが多い。 |
| 80 / 443 | HTTP / HTTPS | HTTP/HTTPSに多い番号。Web管理画面やAPIの可能性があるが、接続できただけでは中身は分からない。ルーター、NAS、プリンター、カメラなど。 |
| 22 | SSH | リモートログインを有効にしたMacやLinux機、NAS。 |
| 88 | Kerberos | Kerberos認証の番号。共有機能を有効にしたMacで開くことがあるが、Linuxやディレクトリサーバーでも開くので、22との組だけではOSは決められない。 |
| 631 / 9100 | IPP / 印刷データ受け口 | 631はインターネット印刷プロトコル、9100は印刷データを直接受ける番号。2つ揃えばプリンターかプリントサーバーの可能性が高い。 |
| 445 / 5000 | SMB / NASの管理画面 | 445はWindows共有。5000番の管理画面との組はSynology製NASの既定構成と一致するが、ポートだけでは製品は確定できない。 |
| 62078 | iPhone・iPadの同期用 | iPhone・iPadで開いていることが多い番号。生存判定は先頭の番号で行うので、他のiPhoneやiPadを探すときは62078を先頭に置いて走らせる。 |
既定のポート欄は 22,80,443,8080 の4つなので、そのままでは631や9100、445は表示されない。プリンターやNASを見分けたいときは、ポート欄に 22,80,443,8080,445,631,9100,62078 のように番号を足してから走らせる。無応答のポートが多いほど時間は延びやすいが、並行して処理するので、ポート数と総時間は単純には比例しない。
03 / LIMITS一覧に出ない機器がある理由
このスキャンは「TCPで接続を試み、何らかの返事があった番号を生きている機器とみなす」方式で、接続が成立した場合も拒否(RST)が返った場合も返事に数え、時間切れまで無応答だった番号は表示されない。出てこないことは、その機器がいないことの証明にはならない。典型は次の4つ。
- 接続要求を黙って捨てる機器。Windows Defender Firewallの受信規則やネットワークプロファイルによっては、接続要求を黙って破棄するため検出されない。スリープ中のスマートフォンや、一部の家電・IoT機器も同様。
- 生存判定はポート欄の先頭の番号で行う。既定なら22番。先頭の番号に一切返事をしない機器は、他のポートが開いていても一覧に出ない。目当ての機器が待ち受けているはずの番号(NASなら445、プリンターなら631)を先頭に置くと拾いやすい。
- ホスト名は、実装上、逆引きの名前解決で得られた名前だけを表示する。家庭用ルーターの多くは逆引きの名前表を持たないので、ホスト名の行が空のまま並ぶのが普通。名前で見分けるならBonjour/mDNSの広告か、ルーターの接続一覧を見る。
- 範囲は Base IP の先頭3つの数字+1〜254 に固定。常に
/24相当の範囲を走査するので、実際のサブネットが255.255.255.0より広ければ一部を取りこぼし、狭ければ自分のサブネット外の番号まで走査対象に含む(マスクの読み方)。
MACアドレスとメーカー名も表示されない。通常のApp Storeアプリは公開APIでMACアドレスの対応表(ARPキャッシュ)を列挙できないため、IPアドレスから直接MACとメーカーを引く方式が使いにくい。メーカー名まで知りたいときは、ルーターの接続一覧を見る。
04 / VERIFY見知らぬ端末かどうかを判定する
一覧に心当たりのない番号があったときの確かめ方は、消去法が一番早い。
| 手順 | やること | 分かること |
|---|---|---|
| 1. 数える | iPhone、PC、テレビ、スピーカー、プリンター、NAS、ゲーム機、スマート家電、スマートプラグ、カメラを書き出す | 台数が一致しても、それだけでは見知らぬ端末がいないとは断定できない。2以降で1台ずつ対応付ける |
| 2. 切って再スキャン | 電源を切れる機器を1台ずつ切り、もう一度 Start LAN Scan | 消えた番号がその機器。残った番号が候補 |
| 3. ルーター側と照合 | ルーターの管理画面でWi-Fi接続端末の一覧とDHCPクライアント一覧を開き、同じ番号のMACアドレスとホスト名を見る | メーカー名や機器名が出ることが多い。iPhoneは「プライベートWi-Fiアドレス」で本体シールと違うMACになる点に注意 |
| 4. それでも不明 | Wi-Fiのパスワードを変えて、機器を1台ずつつなぎ直す | つなぎ直していないのに残る番号は、有線接続、別のSSID、別のアクセスポイント、新しいパスワードを知る端末のどれかを疑う。切断済み端末の古い記録のこともある |
3の照合では、ルーター側の一覧に出ていてSockettaの一覧に出ない機器が残る。上で書いた「返事をしない機器」のほか、切断済みの機器の記録がDHCPリースの期限まで残っている場合もある。DHCPクライアント一覧に載っているのは番号を払い出した記録で、今つながっている証明ではない。現在の接続はWi-Fi接続端末の一覧で見る。逆に、Sockettaに出てルーターの一覧に出ない番号は、固定IPの機器、一覧が無線端末しか出さない機種での有線機器、別のDHCPサーバーから番号を受けた機器が考えられる。普通のスイッチはDHCPの要求をそのまま通すので、スイッチ配下というだけでは一覧から消えない。
Socketta の LAN スキャンは ICMP Echo ではなく TCP 接続方式。iOS では任意の raw socket に制約があるが、ICMP の ping 自体が iOS アプリで送れないわけではない。同時接続は最大50本、1接続あたりの待ち時間は 0.5〜10.0 秒で調整でき、既定は 2.0 秒。走査の対象は自分が管理するネットワーク、または明示的な許可を得た対象に限る。
自分のネットワークで同じ一覧を
ScannerタブのLANモードで開始すると、応答した機器のIP・ホスト名・開いているポートが並びます。LANスキャンとポートスキャンは無料・回数制限なし。
App Store からダウンロード無料ダウンロード・アカウント不要・計測データは端末内に保存。スキャンは自分が管理するネットワークに限る。