IPアドレスでアクセス拒否をする方法
目次
今回は、WordPressで特定のIPアドレスからのアクセスを拒否する方法を紹介します。functions.php にコードを追加することで簡単に実装できます。セキュリティ強化や不正アクセス対策として有効です。
1 実装のポイント
IPアドレスを判定して、対象のIPであれば WordPress のページを表示せずに拒否する仕組みを作ります。拒否したいIPは配列に登録して管理するのがおすすめです。
2 functions.php にコードを追加
//-------------------------------------------
// 特定のIPアドレスや範囲を拒否する
//-------------------------------------------
function deny_specific_ip() {
$blocked_ips = array(
'111.222.333.444', // 1つのIPを拒否
'123.45.67.*' // 123.45.67.0 ~ 123.45.67.255 を拒否
);
$user_ip = $_SERVER['REMOTE_ADDR'];
foreach ($blocked_ips as $blocked) {
// ワイルドカード * を正規表現に変換
$pattern = '/^' . str_replace('\*', '.*', preg_quote($blocked, '/')) . '$/';
if (preg_match($pattern, $user_ip)) {
wp_die('アクセスが拒否されました。(IP制御)');
exit;
}
}
}
add_action('init', 'deny_specific_ip');
補足:
- IPは複数登録可能です。
123.45.67.*→123.45.67.0 ~ 123.45.67.255を全て拒否111.222.333.444→ その1つのIPだけ拒否- 動的IPやプロキシ環境では効果が薄い場合があります。
2.1 動的IP(Dynamic IP)とは?
インターネット接続時にプロバイダから自動的に割り当てられるIPアドレスのことで、接続するたびに変わる場合が多く、同じ利用者でも毎回違うIPになることがあります。
しくみとしては「ユーザー → プロキシサーバー → Webサイト」で、Webサイトから見ると、アクセス元はユーザーの端末ではなく プロキシサーバーのIPアドレス になります。そのため、サイト管理者には「ユーザー本来のIP」が見えず、プロキシのIPだけが分かる状態になります。
2.2 プロキシ環境とは?
プロキシサーバー(Proxy Server) を経由してインターネットに接続する仕組みのことです。ユーザーのパソコンやスマホが直接サイトにアクセスするのではなく、代理(proxy)となるサーバーを中継して通信します。
3 完成イメージ

4 代用プラグイン
プラグインを利用する場合は「Wordfence Security」や「All In One WP Security & Firewall」などのセキュリティ系プラグインで、IPブロック機能を利用できます。
5 まとめ
functions.php にコードを追加するだけで、特定のIPアドレスからのアクセスを簡単に拒否できます。ただし、動的IPやプロキシ環境では限界があるため、必要に応じてサーバー側設定やプラグインと組み合わせるのが安全です。


