Witam.
Jak moge zrobic ze wpisuje na sztywno jakies adres IP
lub pule adresow np 121.0.0.* do 121.0.10.*
czy da sie tak zrobic ?
0
0
Adres kompa laczacego sie ze strona masz tu $_SERVER["REMOTE_ADDR"], wiec sprawdzasz czy sie zgadza z twoim jakims tam stalym IP. Jesli pula tych koncowek, to
$array = explode($_SERVER["REMOTE_ADDR"],".");
if($array[3]>0&&$array[3]<10) to puszczasz
Oczywiscie wczesniej sobie sprawdzasz, czy adres sieci jest zgodny z tym co chcesz.
pozdrawiam
johny
0
np:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$iplist = file('ips.php');
array_shift($iplist);
function trimit(&$w){
$w = trim($w);
}
function rozdziel(&$w){
$w = explode('-', $w);
array_walk($w, 'trimit');
}
array_walk($iplist, 'rozdziel');
$ip = ip2long($ip);
$granted = false;
foreach($iplist as $w)
$granted =
((count($w) == 1) && $ip == ip2long($w[0])) ||
((count($w) >= 2) && $ip >= ip2long($w[0]) && $ip <= ip2long($w[1])) ?
true : $granted;
if( !$granted ){
Header('HTTP/1.1 403 Forbidden');
Die();
}
?>
potem do tego przykładu trzeba utworzyć plik ips.php o przykładowej treści:
<?php Die() ?>
120.0.0.1
121.0.0.1
122.0.0.1 - 122.0.0.255
0
Albo prosciej - regexpem:
<?php
$ipaddr = '127.0.0.*|255.255.*.120|';
if (preg_match('#' . str_replace('*', '.*', $ipaddr) . '#', getenv('REMOTE_ADDR') )
{
// ban
}
?>
- nie testowane
0
tyle że konkretnego przedziału chyba się nie zrobi regexpem (??) np 1.1.1.5 - 1.1.3.20