![見出し画像](https://assets.st-note.com/production/uploads/images/163386308/rectangle_large_type_2_eaa5f66f076fd2cb7932c71c34161a66.png?width=1200)
IPアドレスでホストを指定して通信する
言いたいこと
ホスト同士が通信をする時、「送信側」が「受信側」をIPアドレスで指定する
pingコマンドによる疎通確認でも、対象ホストをIPアドレスで指定
Webアプリを表示する通信でも、対象サーバをIPアドレスで指定
文字だけのURLで、IPアドレスも知らないサーバに通信できるのは、「DNS」という仕組みがあるから。
はじめに
以前、IPアドレスは識別番号である。機器(ホスト)同士が通信をする時、「送信側」が「受信側」をIPアドレスで指定すると解説した記事を書きました。
今回は実際にIPアドレスで指定して受信側に向けて通信をする様子を紹介します。
解説
pingを使用して疎通確認
pingとは、対象ホストとの通信経路に問題がないか確認できるコマンドです。疎通確認と言ったりします。
pingの全体的な仕組みを言います。まず「pingを実行するホスト」が対象のホストに情報を送ります。対象のホストはIPアドレスで指定します。「情報を受け取った対象ホスト」は受け取ったことを実行ホストに返信します。
もし実行ホストが、対象ホストの返信情報を受け取れば通信経路に問題がないです。逆に受け取ることができなければ通信経路に問題があるといえます。
![](https://assets.st-note.com/img/1732640317-PJxdCsqmlniezIXHMLBuFgN2.png?width=1200)
では、コマンドプロンプト上でpingを使用します。
IPアドレスで対象ホストを指定していることに注目ください。
ping 192.168.10.105
![](https://assets.st-note.com/img/1732636141-O9DlBw5A3SPsNxMLXpdV1Kkg.png?width=1200)
画面だとping1回につきpongが4回届いている。
IPアドレスで対象ホストを指定していることが分かるでしょうか?
このように、「最初に情報を送信する側」は「対象ホストのIPアドレス」が必要なのです。
pingを使用した通信を説明しました。でも、地味ですね。
そこでもう少し派手な通信をしてみます。
Webアプリを表示するための通信
Webアプリを表示するための通信も、対象ホスト(サーバ)をIPアドレスで指定します。
この場合、URLの特定箇所にIPアドレスを含めればOKです。
![](https://assets.st-note.com/img/1732669911-scFlBoR5bYg1KxMZafyHrGED.png?width=1200)
厳密性に欠けてるところはご容赦ください
では、実際に対象サーバのWebアプリを表示させましょう。
ブラウザにURLを入力します。
URLには対象サーバのIPアドレスを含めます。
http://192.168.10.104/
![](https://assets.st-note.com/img/1732640702-r1tDHkEx2mnXKGw4gdJ8qB6T.png?width=1200)
そうすると、確かに対象サーバのWebアプリが表示されます。
このように、対象サーバをIPアドレスで指定して通信するのです。
![](https://assets.st-note.com/img/1732640810-VZFLqo3DTO7SNu5klynwxhbH.png?width=1200)
ちなみに、対象サーバにはWebアプリが無いと表示されません。
私も当記事のために「python」の「streamlit」というものを使ってWebアプリを用意しました。
難しいこと言っているかもですが、とにかく下準備してたんだなと知っていればOKです。
補足
さらに補足で説明します。
サーバと通信してWebアプリを表示する様子を紹介しました。
そしてインターネット上のWebアプリには、Webアプリを動かす「サーバ」と「そのサーバのIPアドレス(グローバル)」があるはずです。で、インターネット上への通信もIPアドレスでサーバを指定しなければなりません。
でも、ご自身が使用しているWebアプリサーバのIPアドレスを知っている人、ほとんどいないはずです。私も今使ってる「note」のサーバのIPアドレスは知りません。
ほとんどのURLは文字列ですからね。
なぜ文字列のURLで、IPアドレスも知らないサーバと通信できるのか?その理由は「DNSという仕組みがあるから。」なのです。
DNSついてはまた別の機会に解説したいです。
おわりに
参考になった方が1人でもいらっしゃれば嬉しい限りです。
気になる点があればご指摘いただけると幸いです。