
IP Address Regex Javaバリデーター
IP Address Regex Javaバリデーターは、Java開発者が入力文字列が有効なIPv4またはIPv6アドレスであるかを確認するのに役立ちます。バックエンドバリデーション、フォーム入力、ファイアウォール、ネットワークユーティリティ、およびIPロジックを扱うあらゆるアプリケーションに便利です。
関連するJavaツールもご利用ください:
IP Address Regex Javaバリデーター - ドキュメント
IPアドレスとは何ですか?
IP(インターネットプロトコル)アドレスはネットワーク上のデバイスの一意の識別子です。2つのフォーマットがあります:
IPv4:4つの10進数オクテット(例:192.168.0.1)
IPv6:8つの16進数ブロック(例:2001:0db8:85a3:0000:0000:8a2e:0370:7334)
正確なバリデーションにより、データルーティングとデバイス識別がシームレスに機能します。
IP Address Regexパターン
IPv4 Regexパターン:
^((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.|$)){4}$説明:
4つの数字ブロックを確認します
各ブロックは0〜255の範囲です
ピリオドがブロックを区切ります
IPv4アドレスの仕組みの詳細:
25[0-5]:250〜255にマッチ
2[0-4]\d:200〜249にマッチ
1\d\d:100〜199にマッチ
[1-9]?\d:0〜99にマッチ(先頭ゼロなしの1桁または2桁を処理)
これらのパターンにより、各オクテット(ドット間の値)が0〜255の有効な数字であることが保証されます。グループはリテラルのピリオドで区切られ、パターン全体でIPv4標準が要求する4つのオクテットが強制されます。
IPv6 Regexパターン:
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$説明:
1〜4桁の16進数の8グループを確認します
グループはコロンで区切られます
JavaScriptの例:IPアドレスの検証
JavaScriptでIPアドレスを検証する場合、正規表現が最適です。IPv4とIPv6の両方のアドレスをregexでチェックする方法を簡単に説明します。
// Regular expressions for IPv4 and IPv6 const ipv4Pattern = /^((25[0-5]2[0-4]\d1\d\d[1-9]?\d)(\.$)){4}$/; const ipv6Pattern = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;/**
- Validates whether a given string is a valid IPv4 or IPv6 address.
- @param {string} ip - IP address to validate.
- @returns {string} - The type of IP address or 'Invalid IP'. */ function validateIPAddress(ip) { if (ipv4Pattern.test(ip)) { return "Valid IPv4 Address"; } if (ipv6Pattern.test(ip)) { return "Valid IPv6 Address"; } return "Invalid IP"; }
// Try it out with a few examples: console.log(validateIPAddress("127.0.0.1")); // Valid IPv4 Address console.log(validateIPAddress("2001:0db8:85a3:0000:0000:8a2e:0370:7334")); // Valid IPv6 Address console.log(validateIPAddress("300.168.0.1")); // Invalid IP
Javaコード例(IPv4)
import java.util.regex.Pattern; import java.util.regex.Matcher;public class IPv4Validator { public static void main(String[] args) { String ip = "192.168.1.1"; String ipv4Regex = "^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.|$)){4}$";
Pattern pattern = Pattern.compile(ipv4Regex); Matcher matcher = pattern.matcher(ip); if (matcher.matches()) { System.out.println("Valid IPv4 Address"); } else { System.out.println("Invalid IPv4 Address"); } }
}
一般的な検証シナリオ
テストケース1
入力:000.12.12.034
出力:true
テストケース2
入力:121.234.12.12
出力:true
テストケース3
入力:000.12.234.23.23
出力:false
テストケース4
入力:I.Am.not.an.ip
出力:false
Javaコード例(IPv6)
import java.util.regex.Pattern; import java.util.regex.Matcher;public class IPv6Validator { public static void main(String[] args) { String ip = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; String ipv6Regex = "^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$";
Pattern pattern = Pattern.compile(ipv6Regex); Matcher matcher = pattern.matcher(ip); if (matcher.matches()) { System.out.println("Valid IPv6 Address"); } else { System.out.println("Invalid IPv6 Address"); } }
}
サンプル入力
有効なIPv4:
127.0.0.1
192.168.100.100
無効なIPv4:
256.300.888.1
192.168.1
有効なIPv6:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
fe80::1ff:fe23:4567:890a
無効なIPv6:
2001:db8:85a3::8a2e:370g:7334(無効な文字)
1234:5678:90ab(短すぎる)
追加の例:
入力 | 出力 |
|---|---|
203.120.223.13 | Valid IPv4 |
000.12.234.23.23 | Invalid IP |
2F33:12a0:3Ea0:0302 | Invalid IP |
I.Am.not.an.ip | Invalid IP |
パフォーマンスの考慮事項
時間計算量:
これらの正規表現を使ったIPアドレスの検証は線形時間、つまりO(N)(Nは入力文字列の長さ)で動作します。パターンは各文字を一度スキャンするため、長いアドレスに対しても効率的です。
空間計算量:
空間使用量はO(1)のまま一定です。regexエンジンは入力サイズに比例する追加メモリを必要とせず、マッチングとキャプチャグループの追跡に固定量のみ使用します。
ユースケース
ログイン試行のトラッキング:失敗または成功したログインのIPを記録します。
Geo IP処理:IPに基づいてユーザーの場所をマッピングします。
APIホワイトリスト登録:許可リストに対して受信IPを検証します。
フォームバリデーション:管理パネルやダッシュボードで正しくフォーマットされたIPのみを受け付けます。
プロのヒント
混乱を避けるため、IPv4とIPv6に別々のregexを使用してください。
バリデーション前に入力をクリーンにしてください(例:空白のトリミング)。
regexのみに依存しないでください。フォーマット検証後、InetAddress.getByName()を使ってルーティング可能な状態を確認します。
ジオロケーションやアクセス制御などセキュリティ上重要な操作に、ユーザーが送信したIPを信頼しないでください。
データベースにIPを一貫したフォーマット(完全形式または短縮形式のIPv6)で保存してください。
カスタムバリエーション(CIDRの範囲など)のテストと微調整にはJava regex テスターをご利用ください。
組み合わせをお勧めするツール
MAC Address Regex Javaバリデーター:ハードウェアアドレスの検証
Java regex テスター:カスタムregexテスト
Email Regex Javaバリデーター:ユーザーのメールフォーマット検証
Base64エンコーダー:APIヘッダー用にIPアドレスをエンコード
トークンジェネレーター:IPに対応するセキュアなtokenの生成
Frequently Asked Questions
このバリデーターはIPv4とIPv6の両方をサポートしますか?
このregexだけでIPが存在するか確認できますか?
IPv4での先頭ゼロは有効ですか?
圧縮形式のIPv6を検証できますか?
IPを文字列と数値のどちらで保存すべきですか?
Related Articles






