|
| |
|
|
| |
для: Poison
(11.01.2007 в 00:55)
| | | БОльше не кто не поможет???:))) | |
| |
|
|
| |
|
|
| |
для: Poison
(10.01.2007 в 23:28)
| | | ^ | |
| |
|
|
| |
|
|
| |
для: Poison
(10.01.2007 в 23:28)
| | | Как-то давненько писал... Подделать немного и всё.
<?php
$ip = '192.278.56.123';
$mask = '192.*78.5*.*';
$ms = explode('.', $mask);
for ($i=0; $i<count($ms); $i++) {
if (strpos('*', $ms[$i]) !== false) {
$s = str_replace('*', '', $ms[$i]);
$num = 3-strlen($s);
$ms[$i] = str_replace('*', '[0-9]{0,'.$num.'}', $ms[$i]);
} else {
$ms[$i] = $ms[$i];
}
}
$mask = implode('.', $ms);
if (preg_match('/'.$mask.'/', $ip)) {
print 'В диапазоне!';
} else {
print 'Пока!';
}
?>
|
| |
| |
|
|
| |
|
|
| | Решил написать скриптик хранящий доступные ip или наоборот для которох вход запрешен:))
Но вот есть проблемы, почемуто иногда пролетают ip недоступные и наоборот не проходят доступные:(((
В чем может быть проблема???
<?php
/* ------------------------------------------------------------------------
------------------------------------------------------------------------ */
$access_ip[] = "-*.0.5.*4*"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
$access_ip[] = "-82.240*.0.156"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
$access_ip[] = "+*.0.5.*4*"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
$access_ip[] = "-158.022.*5.158"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
$access_ip[] = "+*2*.0.*.1"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
$access_ip[] = "+82.20*.0.156"; // '+' - Разрешен, '-' - Запрещен, '*' - Любой символ \\
/* ------------------------------------------------------------------------
------------------------------------------------------------------------ */
check_access_ip();
function check_access_ip() {
global $access_ip;
$access_allow = false;
$condition = true;
if (isset($_SERVER['REMOTE_ADDR'])) {
$test_ip = (strip_tags(trim($_SERVER['REMOTE_ADDR'])));
foreach ($access_ip as $user_ip) {
$condition = ((substr($user_ip, 0, -(strlen($user_ip)-1)) == "-") ? false : true);
$user_ip = str_replace("-", "", $user_ip);
$user_ip = str_replace("+", "", $user_ip);
$user_ip = explode(".", (trim($user_ip)));
$pattern = ("/^".(($user_ip[0] == "*") ? "[0-9]{1,3}" : str_replace("*", "\d", $user_ip[0]))."\.".(($user_ip[1] == "*") ? "[0-9]{1,3}" : str_replace("*", "\d", $user_ip[1]))."\.".(($user_ip[2] == "*") ? "[0-9]{1,3}" : str_replace("*", "\d", $user_ip[2]))."\.".(($user_ip[3] == "*") ? "[0-9]{1,3}" : str_replace("*", "\d", $user_ip[3]))."$/i");
// echo "<pre>".$pattern."</pre>";
if (preg_match($pattern, $test_ip)) {
$access_allow = $condition;//(($condition) ? true : false);
break;
}
}
} else {
$access_allow = false;
}
if (!$access_allow) {
// header("location: http://".$_SERVER['HTTP_HOST']."/");
echo "Эээ доступ закрыт!!!!!!";
exit();
} else {
echo "Ok проходи...";
}
}
?>
|
| |
| |
|
|
|