私はあなたがこのようなものを使うことができると思います:
アクセスする次のリンクのみを割り当てたと仮定します。
人々にsite.com/index.php?id=
アクセスのみを許可したい場合、id=homepage
または、、about-us
service
contact
$id = $_GET['id'];
switch($id){
case "homepage";
echo //do something
break;
case "about-us";
include('about.php');
break;
case "service";
echo //something;
break;
case "contact";
echo //something
break;
default:
get_ip_and_ban(); // initiate a function, that records and bans IP
break;
}
更新-(複数のサーバー間でIPを共有する方法..)またはラインに沿った何か
わかりました、これはIPを取得する方法です..または私がIPを取得する方法です。
function get_ip() {
if(!empty($_SERVER['HTTP_CLIENT_IP']))
{ $ip=$_SERVER['HTTP_CLIENT_IP']; }
elseif(!empty($_SERVER['HTTP_X_FORWARD_FOR']))
{$ip=$_SERVER['HTTP_X_FORWARD_FOR'];}
else {$ip=$_SERVER['REMOTE_ADDR'];}
return $ip;
}
つまり、get_ip();
IPを取得する関数です。これにより、不正なリンクにアクセスしようとしている人をデータベースに挿入できます。それで、それを行った後、データベースに不正なIPが存在するかどうかをチェックする簡単な関数を作成しましょう。データベース$allowed_ip
からの不正なIPの配列であり、この関数は不正なIPの1つが存在するかどうかをチェックし、存在する場合、次の関数はユーザーがページにアクセスするのをブロックします。
function access_directive($allowed_ip){
if(get_ip() === $allowed_ip)
{exit("Dude, You are blocked. Get Lost"); }
}
ここで、簡単にするために
<?php echo access_directive("127.0.0.1"); ?>
、ページの上部にあるlocalhostのみをブロックし、内部に示されているIPをブロックします。access_direcive();
不正なIPを保存するためのデータベースを作成し、ページの上部で上記の関数などを使用して他の人をブロックする必要があります。