現在の位置: ホーム> 最新記事一覧> preg_match関数を使用してIPアドレスを検証して、形式が正しく有効であることを確認する方法は?

preg_match関数を使用してIPアドレスを検証して、形式が正しく有効であることを確認する方法は?

gitbox 2025-08-27
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// この部分は、記事の内容とは何の関係もありません,いくつかを置くことができますPHPコメントまたは無関係なコード</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"読んでくださいPHPチュートリアル!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n--------------------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

使い方preg_match検証する機能IP住所,フォーマットが正しく効果的であることを確認してください?

存在するPHP真ん中,`preg_match`機能は、正規表現マッチングのための非常に強力なツールです。ユーザーの入力を確認する必要がある場合IP住所是否格式正确时,`preg_match`このタスクは迅速に完了できます。本文将详细讲解使い方它验证IPv4そしてIPv6住所。

</span><span><span class="hljs-comment">### 1. IPv4住所验证</span></span><span>

IPv4住所由四段数字组成,各番号の範囲はです</span><span><span class="hljs-number">0</span></span><span>到着</span><span><span class="hljs-number">255</span></span><span>,真んドットで中央を分離します,例えば:</span><span><span class="hljs-number">192.168</span></span><span>.</span><span><span class="hljs-number">0.1</span></span><span>。为了确保格式そして有效性,次の正規表現を使用できます:

```php
</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span> = </span><span><span class="hljs-string">"/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"192.168.1.100"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4住所格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4住所格式不正确"</span></span><span>;
}
</span></span>

説明する:

  • 25 [0-5]一致250-255

  • 2 [0-4] [0-9] 200-249マッチ

  • 1 [0-9] {2}一致100-199

  • [1-9]?[0-9]一致0-99

  • ((...)\。){3} ... 4つの数字があり、中央がドットで分離されていることを確認してください

2。IPv6アドレス検証

IPv6アドレス形式はより複雑で、8セットの16進数で構成され、それぞれがコロンで区切られています。単純な正規表現の例は次のとおりです。

 <span><span><span class="hljs-variable">$ipv6_pattern</span></span><span> = </span><span><span class="hljs-string">"/^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"2001:0db8:85a3:0000:0000:8a2e:0370:7334"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv6_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6住所格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6住所格式不正确"</span></span><span>;
}
</span></span>

3。実用的なヒント

  1. IPv4とIPv6の両方を検証する場合は、IP検証関数が組み込まれているFilter_Var関数を使用できます。

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>, FILTER_VALIDATE_IP)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IP住所有效"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IP住所无效"</span></span><span>;
}
</span></span>
  1. ユーザーの入力を処理するときは、スペースと無効な文字の削除に常に注意を払い、以前およびその後のスペースによる障害の一致を避けます。

 <span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>);
</span></span>
  1. 多数のIPアドレスのバッチ検証の場合、ループとpreg_matchを組み合わせて各入力を効率的に確認することができます。

要約します

preg_matchと正確な正規表現を組み合わせて使用​​すると、IPアドレス形式が正しく有効であることを確認できます。 IPv4の場合、焦点は数の範囲とセグメント番号に焦点を当てています。 IPv6の場合、六十年群と結腸分離に焦点が当てられています。これらのスキルを習得すると、ネットワークアドレスを処理する際にPHPプログラムがより安全で信頼性を高めることができます。

 <span></span>