
こんにちは。現在、掲示板などに使うアクセス制限ライブラリを作っています。
やりたいことは、制限したいIPアドレスのリストを作り、そのリストの中に接続元のIPが含まれているかどうかを調べたいのです。
制限したいIPアドレスのリストには、IPアドレスの範囲表現(?)を使うことができるようにしたいと考えています。
例:
$deny[0] = 'xxx.11.11.11';
$deny[1] = 'xxx.11.22.33';
$deny[2] = 'xxx.11.33.*';
上記の「*」のようにです。
ここで、
$ip = 'xxx.11.33.12';
が、$denyに含まれているかどうかを調べたいのです。
正規表現を使うのかとも考えましたが、なかなか理解できません。
もし、お分かりになりましたら回答よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
多分こんな感じではないかと。
。。if(preg_match ("/xxx\.11\.33\.\d*/i", $ip)) {
#ふくまれてる
} else {
#ふくまれてない
}
参考URL:http://www2.famille.ne.jp/~akio1998/l_grep.html
ありがとうございます。参考になりました。
=============================================
$deny[0] = '11.11.11.11';
$deny[1] = '11.11.22.33';
$deny[2] = '11.11.33.*';
$ip = '11.11.33.4';
foreach ($deny as $value)
{
$str = str_replace('*', '\d*', $value);
if(preg_match ('/'.$str.'/i', $ip))
{
#ふくまれている
}
else
{
#ふくまれてない
}
}
=============================================
としたところ、「11.11.33.*」のみがマッチすることを確認しました。自分は正規表現の基礎から勉強する必要がありますね^_^;
URLも参考になります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを使ってHTMLソースから特定...
-
2つのif 構文が1つしか動作し...
-
VBAのコマンドボタンの文字列の...
-
PPT ファイルの文字カウント=...
-
文字化け変換方法
-
数値をASCII文字にする方法につ...
-
ファイルから読み取った改行文...
-
ソースコードの1行が長いとき...
-
C言語の標準入力で改行しない方法
-
fscanfについて
-
全角英数文字が嫌われる理由を...
-
Replace関数は文字数の制限ある...
-
改行について
-
Excel VBS、ADODB.Streamで改行
-
ASCII文字列をEUCなどに変換し...
-
改行コード2種類を混在させたい
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
正規表現に関して
-
JavaDoc コメントの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
、"(ダブルクォーテーション)...
-
正規表現で、半角大文字と半角...
-
PHPで変数から1行目だけを取得...
-
PHPで<a>タグ内からURLと文字を...
-
携帯アドレスの正規表現
-
VBAを使ってHTMLソースから特定...
-
switchの大量分岐の高速化
-
正規表現について
-
preg_matchでエラーが出ます。
-
電話番号のチェック ハイフン...
-
変数に指定文字列が含まれると...
-
1ファイルから項目を正規表現で...
-
正規表現で「0」のみ抽出
-
複雑な/による文字列の分割につ...
-
サイトが移動しました(301)が...
-
Smartyで部分一致
-
PHPで あるフォルダ内の、特定...
-
PHPの正規表現について
-
Excelで数字のみを2倍3倍にする...
-
正規表現 先頭一桁をマッチさせ...
おすすめ情報