私のIPアドレス
curl ipin.io
標準のcurl
コマンドは、ほとんどのUnix系システムで動作します。JSON形式で出力するには:
curl ipin.io/json
curl --ipv4 ipin.io
TermuxでIPv4接続を強制します。タイムアウトを設定する代替方法:
curl --connect-timeout 5 ipin.io
(Invoke-WebRequest -Uri "http://ipin.io").Content
簡略化したPowerShell構文です。JSONレスポンスを得るには:
(Invoke-WebRequest -Uri "http://ipin.io/json").Content | ConvertFrom-Json
wget -qO- ipin.io
サイレントモード(-q
)でstdout(-O-
)に出力します。Alpine Linux(iSH基盤)用:
apk add curl && curl ipin.io
wget -qO- --timeout=10 ipin.io
リソース制限のあるデバイス向けに推奨します。wget
が利用できない場合:
opkg install wget-ssl
curl --max-time 5 ipin.io
curlがない最小コンテナの場合:
docker run --rm alpine wget -qO- ipin.io
fetch('https://ipin.io/get_client_ip')
.then(r => r.ok ? r.json() : Promise.reject('APIエラー'))
.then(data => console.log('IP:', data.ip))
.catch(e => console.error('エラー:', e))
エラーハンドリング付きの基本実装です。運用環境で使用する場合:
- AbortControllerを使ってタイムアウト処理を追加する
- クロスオリジンリクエストの際にCORS要件を考慮する
- レート制限を回避するために結果をキャッシュする
注意:
ブラウザAPIは、プロキシやVPNの影響で、サーバー側で確認したIPとは異なる場合があります。ウェブアプリで正確なクライアントIPを取得するには、サーバー側での検出を検討してください。
IPクエリツールの詳細説明
このツールは、開発者およびシステム管理者向けに設計された、公共IPアドレスのクロスプラットフォームでのクエリを行うための包括的なソリューションです。複雑なネットワーク環境でデバイスのパブリックIPアドレスを正確に取得できます。従来のIPクエリサービスとは異なり、このソリューションはさまざまなオペレーティングシステムおよび実行環境向けに最適化されており、さまざまなシナリオでも安定したパフォーマンスを保証します。
このツールは、macOS/Linux端末、Windows PowerShell、Android Termux端末、iOS iSH端末、OpenWRTルーターシステム、Dockerコンテナ環境など、複数のプラットフォームをサポートしています。各プラットフォームには、ネットワークスタックの実装の違いやデフォルトツールチェーンの特徴、一般的な設定制限を考慮した最適なコマンドが提供されています。
特に注目すべきは、最新のfetch APIを使用した完全なブラウザサイドJavaScript実装を提供している点です。これにより、フロントエンド開発者は簡単にWebアプリケーションに統合できます。このソリューションはCORS(クロスオリジンリソースシェアリング)問題を処理し、強力なエラーハンドリングを提供します。
すべてのクエリインターフェースは、IPv4およびIPv6のデュアルスタックプロトコルをサポートしており、ネットワーク環境に基づいて最適なクエリ方法を自動的に選択します。返された結果は、プレーンテキストとJSON形式の両方で提供され、JSON形式には、ジオロケーション、ネットワークオペレーターなどのIP関連情報が含まれます。
詳細な使用ガイド
1. 環境別のコマンド
実行環境に応じて、次の最適化されたコマンドを使用することをお勧めします:
-
Unix系システム(macOS/Linux/BSDなど):
curl -s ipin.io
curlツールを使用することで、簡潔かつ効率的に動作します。
-s
オプションでサイレントモードを有効にして、余分な出力を避けることができます。接続タイムアウトのパラメータを追加することをお勧めします:--connect-timeout 3
-
Windowsシステム:
(Invoke-WebRequest -Uri "http://ipin.io" -UseBasicParsing).Content
PowerShellの標準コマンドです。古いシステムの場合、次のコマンドも使用できます:
(New-Object Net.WebClient).DownloadString("http://ipin.io")
-
モバイルデバイス:
# Android Termux curl --ipv4 --silent ipin.io # iOS iSH wget -qO- --no-check-certificate ipin.io
AndroidはIPv4を強制して、デュアルスタック環境の問題を避けます。iOSは証明書の検証をスキップします。信頼性を高めるためにリトライロジックを追加することをお勧めします。
2. 高度な使用のコツ
-
JSON形式での出力:
コマンドのURLに
/json
パスを追加して、構造化データを取得できます:curl ipin.io/get_client_ip
サンプルレスポンス:
{"ip": "203.0.113.45"}
-
ネットワークデバッグのコツ:
ネットワーク環境が複雑な場合、次のパラメータを使用することをお勧めします:
curl --retry 2 --connect-timeout 5 --max-time 10 ipin.io
このコマンドは、5秒以内に接続し、最大2回のリトライを行い、全体のリクエストが10秒以内に完了することを保証します。