LinuxバッシュスクリプトでパブリックIPを取得する方法

Nov 9, 2024
Linux

コンピューターにリモートで接続する場合は、外部IPアドレスが必要になります。 手動でそれを見つけるのは簡単ですが、Linuxスクリプト内からそれを見つける方法は次のとおりです。

内部および外部IPアドレス

インターネットプロトコルアドレス ネットワーク上のデバイスを識別するために使用されます。 それらは、単一のデバイスに割り当てられたネットワーク上のユニークなラベルです。 別のデバイスがそのデバイスにデータを送信したい場合、IPアドレスを使用してそうすることができます。

ブロードバンドモデムには、ネットワークルーターが組み込まれており、ネットワークをデバイスからデバイスに向けてネットワークトラフィックを指示します。 また、ネットワークに参加するときにIPアドレスをデバイスに割り当てるのは地方自治体でもあります。 また、ネットワーク名とIPアドレスのテーブルも維持しています。 これにより、ネットワーク上のコンピューターに意味のある名前を付けることができます。なぜなら、人間にとっては、数字のリストよりも操作しやすいからです。

上のデバイス インターネット また、IPアドレスがあります。 それらのいくつかには、ウェブサイトなどの名前もあります。 ドメイン名サービス プロバイダーは、Webサイトドメイン名を検索し、自動的にIPアドレスに交換します。

ブロードバンドモデムには、独自のインターネット面が与えられています 外部の あなたによるIPアドレス インターネットサービスプロバイダ (ISP)。 インターネットに接続されている自宅にあるデバイスの数に関係なく、それらの交通を組み合わせたものはすべて、その単一のIPアドレスを介して出ます。

町を出て、自宅のコンピューターの1つで実行されているサービスに接続したい場合は、外部IPアドレスを使用して使用する必要があります。 あなたの ルーター もちろん、接続要求を家の中の適切なデバイスにルーティングするために設定する必要があります。

毎月ISPに少し余分な支払いをしない限り 静的 IPアドレス 外部IPアドレスは時々変更される場合があります。 ブロードバンドモデムを再起動すると、異なる外部IPアドレスを取得する可能性があります。 したがって、外部IPアドレスを知る必要がある場合は、一度チェックして保存することはできません。 定期的にそれが何であるかを判断する必要があります。

外部IPアドレスを見つける

あなたの外部IPアドレスを発見するということは、あなたのネットワークの外側にある何かと話すことを意味します。 言い換えれば、インターネット上で私たちが望む情報を提供できるものにアクセスします。 私たちはボイドを覗き込んで、私たちを振り返っているものを見る必要があります。 そして、外部アドレスを尋ねます。

これを行う方法は2つあります。 1つの方法にはWebサイトが含まれます。 外部IPアドレスが何であるかを示すウェブサイトがたくさんあり、他の情報もたくさんあります。 ブラウザでこれらにアクセスするか、次のようなコマンドラインツールを使用できます カール それは作ることができます https リクエスト。

もう1つの方法は、次のような専用コマンドを使用することです 掘る 掘る コマンドはDNSサーバーを尋問して情報を取得します。

ブラウザを使用します

もちろん、ブラウザを使用することは、外部のIPアドレスを取得するためのスクリプトフレンドリーな方法ではありません。 しかし、そのサービスを提供するウェブサイトを見ると、有用な情報を提供できます。 以前はお勧めしていました IP4.me しかし、サイトはHTTPSに更新されていません。 それはまだ古い、不安定なものを使用しています http 。 サイトはまだ機能していますが、今ではより良い選択肢があります。

これは、外部IPを178.238.11.140として報告しています。 Webページをスクロールすると、サイトから情報を取得するために使用できるコマンドのリストがあります。

彼らがすべて使用する例 カール サイトを尋問する。 それでは、見てみましょう 使用 カール

カールを使用します

私たちのテストマシンで、 Fedora 37 すでに持っていた カール インストール。 UbuntuとManjaroコンピューターにインストールする必要がありました。

にリストされている最初のコマンドでこれを試すことができます ifconfig.me ウェブページ。

外部IPアドレスが取得され、端末ウィンドウに表示されます。 出力はベアボーンです。 文字列の後に印刷された新しいライン文字さえありません。 コマンドプロンプトは、IPアドレスに対してすぐに突き合わせられます。

このコマンドは、IPアドレスを返すことがWebサイトのデフォルトアクションであるために機能します。 デフォルトのアクションが変更された場合、別の結果が返される可能性があります。 これに応えるために、「IP」識別子をURLに追加することにより、IPアドレスを要求していることを指定できます。

これは、WebサイトをIPアドレスのソースとして使用することの問題を示しています。 Webサイトは閉鎖することも、操作方法や返された情報の形式を変更することもできます。 これらの変更が行われます スクリプト それはこれらのサイトに依存して、予測不可能に失敗するか動作します。

aのような評判の良い信頼できるリソースを使用します DNS サーバーは、外部IPを取得するためのより堅牢な方法です。 DNSサーバーを照会するには、DIGコマンドを使用する必要があります。

関連している: DNSとは何ですか?別のDNSサーバーを使用する必要がありますか?

DIGコマンドを使用します

この時、 掘る FedoraとUbuntuにインストールされ、Manjaroに設置するだけでした。

コマンドは通常です パックマン コマンドなので、驚きはありませんが、パッケージ名はあなたが期待するかもしれないものではありません。

使用 掘る 外部IPアドレスを見つけるには、DNSサーバーを指す必要があります。 を使用しています Ciscoが提供するOpendnsサーバー

使用するDNSサーバーの名前を指定する必要があります。 また、取得したいレコードタイプに名前を付ける必要があります。 この場合、それは「myip」です。 +短い オプションは、冗長な応答ではなく、簡潔な応答を確実に取得します。

今回は、IPアドレスに新しいライン文字が印刷されています。 ご覧のとおり、これはIPアドレス文字列の後に印刷されますが、文字列自体の不可欠な部分ではありません。

スクリプトでこれらを使用します

スクリプト内から外部IPアドレスを知りたいと思うかもしれない多くの理由があります。 おそらく、外部IPアドレスが変更されたかどうかを監視するスクリプトがあり、それが発生したときに通知します。 または、おそらくサーバーがアドレスが変更されたときにクライアントに通知します。 あなたの理由が何であれ、スクリプト内のコマンドラインで使用したコマンドを非常に簡単に実装できます。

外部IPアドレスを取得し、 変数 、コマンドの代替にコマンドを包むだけで、 $(...) 、そして、このような変数に割り当てます。

括弧内のコマンドが実行され、式の返品値が式に置き換えられます。 この例では、コマンドは「変数=戻り値」に簡素化されます。

ここにスクリプトにあります。 追加しました -s (サイレント)オプション カール データ取得の進捗状況を報告しないようにするコマンド。

このスクリプトをエディターにコピーし、「getex1.sh」として保存し、で実行可能にします chmod 指図

WebサイトではなくDNSサーバーを使用するというより堅牢なオプションで同じことを行うには、私たちがする必要があるのは、 カール でコマンド 掘る 一。

これをスクリプト「getex2.sh」として保存し、で実行可能にします chmod

コマンドにもかかわらず、2つのスクリプトの出力から見ることができます 掘る コマンドラインに新しいライン文字を印刷すると、スクリプトにはに新しいラインが追加されていません extaddr 変数。

信頼性のために行きます

「非公式」Webサイトを使用するよりも、評判が良く、予測可能な出力形式を持つ認識されたサービスを使用する方が常に安全です。 インターネット上の他のすべてのものと同様に、誰から情報を得ているかをよく見てください。」

関連している: Linuxスクリプトが仮想マシンで実行されていることを検出する方法

  • CMDからIPアドレスを見つける方法(コマンドプロンプト)
  • ワイズはダウンしています、それはあなただけではありません
  • Microsoft EdgeはAIチャットとWindowsの新しい外観を取得しています
  • MicrosoftはBingをAI検索エンジンに変換しています
  • Tiktokで誰かをブロックまたはブロックする方法
  • OnePlus 11はここにありますが、大まかなスタートがあります
  • Bose QuietComfort Earbuds 2レビュー:ノイズキャンセルオーディオの一歩前進

Linux - 最も人気のある記事

Linux上の壊れたシンボリックリンクを見つけて削除する方法

Linux Nov 12, 2024

Fatmawati Achmad Zaenuri / Shutterstock Linux上のシンボリックリンクは素晴らしい機能ですが、それらは壊れていて、何も指し�..


SystemDのない最良のLinuxディストリビューション

Linux Feb 24, 2025

BMJ / ShutterStock.com 支配的なLinuxディストリビューションが採用されたとき システム 、分割された分布を分類し�..


初心者のためのドッカー:あなたが知る必要があるすべて

Linux Jun 15, 2025

ドッカー パッケージアプリケーションを作成します コンテナと呼ばれます。各コンテナは、Aの識別環境を提供します �..


Debian 11 "Bullseye"の新機能

Linux Jul 22, 2025

Debian 他の多くのLinux分布の前駆者は、試験段階で利用可能なリリース11を作りました。あなたはアップグレードの美徳を量りますか�..


Linuxでfsckコマンドを使う方法

Linux Aug 18, 2025

Pixza Studio / Shutterstock 私たちの重要なデータはすべて1つのタイプまたは別のタイプまたは別のファイルシステムで座っ�..


Linuxでカーネルをロールバックする方法

Linux Sep 30, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com あなたのシステムへの更新後にLinux PCが突然問題を抱えている場合、それは可能です..


LinuxでSteamをダウンロードしてインストールする方法

Linux Oct 9, 2025

PostModern Studio / ShutterStock.com だから、あなたはゲームを試してみたいです Linux. ?この記事では、Linux Gamingの旅�..


新しいLinuxユーザーが犯す7つの間違い(およびそれらを避ける方法)

Linux Nov 11, 2024

Linuxを学ぶことは、すべての小さなことが戦いのように感じるイライラする経験になる可能性があります。 これらの一般的な間違いを避けるこ�..


カテゴリ