テキストからIPアドレスを抽出
192.168.1.10、10.0.0.25、8.8.8.8、もう一度10.0.0.25を含む行を貼り付けると、4件が順番どおりに返ります。どの部分も255を超えられないため、999.1.2.3は除外されます。アドレスへの接続や照会はしません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
IPv4アドレス抽出ツールは、構造化されていない文章をネットワークアドレスの順序付き一覧に変換します。サーバーログ、設定の一部、障害対応メモ、コマンド出力、サポートメッセージを貼り付けると、有効な10進IPv4の全出現箇所と合計件数を取得できます。4つのオクテットを検証し、紛らわしい部分一致を除外しつつ、重複は保持します。ネットワーク、DNS、位置情報、乱数、時刻に依存しないため、スクリプト、監査、テスト、障害解析で再現可能な結果を得られます。
有効なIPv4アドレスの判定方法
本ツールは、ピリオドで区切られた10進IPv4表記を検索します。形式は4つの10進オクテットで、各値は0から255までの整数でなければなりません。そのため、192.168.1.10、10.0.0.25、8.8.8.8は抽出されますが、256.1.1.1や192.168.1は除外されます。
010のような表記はソフトウェアによって8進数と解釈された経緯があるため、複数桁の先頭ゼロも認めません。境界も厳密に確認し、さらに長い不正なアドレス、5区分の列、英数字に直結した識別子から、正しそうな一部分だけを切り出すことはありません。一方、ログや文章で一般的な括弧、コンマ、引用符、コロン、セミコロンは検出を妨げません。
アルゴリズムは上限付きの文章を直線的に走査し、候補の4要素を検証します。対象アドレスへの接続、DNS照会、公開・プライベート・割り当て済み範囲の判断は行いません。
順序付き抽出結果の読み方
重複は意図的に残します。障害ログに同じアドレスが10回あれば、10件の出現は頻度を表し、原文との対応も維持できます。一意の一覧が必要な場合は、取得後に重複を除いてください。
有効なアドレスがない文章も成功として扱われ、空の配列とcountの0を返します。応答を小さく保つため、原文は返しません。古くなる可能性があるホスト名、国、ASN、危険度、ポート、プロトコルは追加しません。
ログ、設定、運用業務での活用方法
運用担当者は、リバースプロキシ、ロードバランサー、SSH、ファイアウォール、アプリケーションのログを貼り付け、時刻、パス、メッセージから接続先を分離できます。障害対応では、手作業で転記せずに、順序付き一覧を頻度集計、許可リスト照合、プライベート範囲判定へ渡せます。
プラットフォーム担当者は、サービス移行や基盤更新の前に、設定へ直接記述されたIPv4接続先を発見できます。サポート部門は顧客メモやコマンド記録を構造化でき、セキュリティ担当者は許可された証拠から指標を抽出して適切な評価ツールへ渡せます。ただし、抽出は構文判定であり、信頼性の判断ではありません。
アドレスはプライベート、予約済み、到達不能、偽装、単なる例示の場合があります。IPv6、完全なCIDRオブジェクト、独立したポート、ホスト名も対象外です。役割を分離することで動作を予測可能にし、各工程で適切な補足、権限、保持規則を選択できます。
活用例
障害ログから接続先を抽出
プロキシ、ファイアウォール、アプリケーションの出力を、許可された調査向けの順序付きIPv4一覧に変換します。
設定内の固定アドレスを発見
基盤変更や移行の前に、設定と配備メモから10進表記の接続先を検索します。
よくある質問
IPv4の各オクテット範囲を検証しますか?
はい。 4つの10進オクテットが必要で、それぞれ0から255の範囲でなければなりません。
重複するIPアドレスは削除されますか?
いいえ。 すべての出現を元の順序で返します。一意の値が必要な場合は、取得後に重複を除いてください。
公開アドレスか、到達可能かを確認しますか?
いいえ。 ネットワークを使わない決定的な構文解析です。到達性、所有者、位置情報、範囲分類には別のツールが必要です。
010のように先頭がゼロの部分を含むアドレスが除外されるのはなぜですか?
010のような部分を8進数として読むソフトが過去にあり、意味があいまいになるためです。0から255までの普通の10進数の部分だけを認めるので、抜き出したアドレスは誤解の余地がありません。
かっこやカンマに囲まれたアドレスも見つかりますか?
はい、かっこ、カンマ、セミコロン、引用符、コロンが前後にあっても見つかります。ただし、文字や数字が直接つながっている場合や、5つに区切られた並びからは一部だけを切り出しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/extract-ip-addresses \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."}'const res = await fetch("https://api.kit.forhosting.com/str/extract-ip-addresses", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/extract-ip-addresses",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/extract-ip-addresses", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/extract-ip-addresses", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Proxy 192.168.1.10 forwarded to 10.0.0.25; health check: 8.8.8.8."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.extract_ip_addresses",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
有効なIPv4アドレスの判定方法
この限定された仕様により、接続環境、場所、実行時刻に左右されず、常に同じJSONを返します。
順序付き抽出結果の読み方
解析するログ、設定、メモなどをtextフィールドに指定してください。成功時には、元の出現順で文字列を格納したip_addresses配列と、要素数を示すcountが返ります。textがない、文字列ではない、空である、または規定上限を超える場合はinvalid_inputとなるため、不正な要求と一致なしの正常文書を区別できます。自動API処理の公開基本料金は成功した1件につき$0.002で、ブラウザーでは同じ純粋なロジックをローカル実行します。
連携の活用例
サポートとQAの証拠を構造化
コマンド記録とメモを、テスト、取り込み、再現可能な診断に適した安定したJSONへ変換します。
技術的な質問
IPv4アドレスがない文章はどうなりますか?
正常に完了し、ip_addressesは空の配列、countは0になります。
IPv6、ポート、CIDRブロックも抽出しますか?
有効な10進IPv4部分のみを抽出します。IPv6、ポート、CIDRプレフィックスを別フィールドでは返しません。