【PHP】filter_var関数を使ってIPアドレスかどうか判定するサンプルプログラム

スポンサーリンク

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。

この記事では、 PHPfilter_var関数を使ってIPアドレスかどうか判定

  • サンプルプログラム
  • 実行結果
  • プログラム解説

と、丁寧に解説していきます。

前提条件:実行環境について

実行環境は以下の通りです。

OS Windows11
PHPのバージョン 8.2.4
XAMPPのバージョン 8.2.4

PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。

phpプログラムは

C:\xampp\htdocs

配下に、【sample.php】というファイル名で格納しています。
PHPのfilter_var関数を使ってIPアドレスかどうか判定するサンプルプログラム

サンプルプログラムの概要

  • IPv4アドレスの文字列
  • IPv6アドレスの文字列
  • IPアドレスでもない文字列

の3つの文字列に対して、判定させて結果を表示させます。

phpプログラムは

C:\xampp\htdocs

配下に、【sample.php】というファイル名で格納しています。
PHPのfilter_var関数を使ってIPアドレスかどうか判定するサンプルプログラム

IPアドレスかどうか判定するサンプルプログラム

実行結果

XAMPPを起動して、【http://localhost/sample.php】のURLにアクセスします。

XAMPPでPHPの動かし方については、こちらの記事をご参考ください。

PHPのfilter_var関数を使ってIPアドレスかどうか判定するサンプルプログラム

与えた

  • IPv4アドレスの文字列
  • IPv6アドレスの文字列
  • IPアドレスでもない文字列

が、それぞれ判定できていることを確認できました。

プログラム解説

サンプルプログラムの解説を

  • filter_var関数の基本構文
  • filter_var関数のオプション

で解説していきます。

filter_var関数の基本構文

「FILTER_VALIDATE_IP」は、PHPのフィルターでIPアドレスかどうかをチェックする定数です。
filter_var関数は、第二引数に「FILTER_VALIDATE_IP」が指定された場合、第一引数に与えられた文字列がIPv4アドレスまたはIPv6アドレスのフォーマットだった場合、第一引数に指定された値をそのまま返します。
どちらのフォーマットでもなかった場合は、「false」を返します。

サンプルプログラムでは

で与えられた文字列がIPv4アドレスまたはIPv6アドレスなのかを判定しています。

filter_var関数のオプション

filter_var関数は、オプションとして第三引数も指定することができます。
サンプルプログラムだと

  • FILTER_FLAG_IPV4
  • FILTER_FLAG_IPV6

ですね。

これを指定した場合、FILTER_FLAG_IPV4はIPv4アドレスのみ、FILTER_FLAG_IPV6はIPv6アドレスのみであるかどうかを判定できます。
よりIPアドレスを絞り込みたいときに指定すると便利です。

サンプルプログラムではIPv4アドレスのみの判定は

IPv6アドレスのみの判定は

でそれぞれ判定しています。

まとめ:IPアドレスかどうか判定してみよう!

以上がPHPでfilter_var関数を使ってIPアドレスかどうか判定するサンプルプログラムでした!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました