Сравнение Ip с базой ip`шников =)

IBSN

Новичок
Сравнение Ip с базой ip`шников =)

Народ, как сделать проверку Ip, нужно:
пользователь заходит на сайт , скрипт определяет его ip и смотрит ip.txt , если там такой Ip есть , вход неразрешает, а если нету тогда разрешает???

Я знаю как узнать ip и записать в базу, но незнаю как сравнить ip и найти его в базе =)

КАК????
 

woland

Guest
Считать файл в массив ([m]file[/m]), выполнить поиск по массиву ([m]in_array[/m]).
 

Апокалипсис

Guest
А можно и так:
PHP:
$f=file("ip.txt");
for($i=0; $i<count($f);$i++)
{
if($f[$i]==getenv("REMOTE_ADDR")){
echo "Айпи Найден!"; exit();}
}
 

IBSN

Новичок
ну он соравно пускает
вот я так написал:
PHP:
$f=file("ip.txt"); 
for($i=0; $i<count($f);$i++) 
{ 
if($f[$i]==getenv("REMOTE_ADDR")){ 
echo "Айпи Найден!"; exit();} 
else
{
header("Location: pl.php?menu=main");
	exit;
}
}
он соравно не пишет айпи ненайден =( а просто пропускает, ip в базу я пихнул =)
 

Апокалипсис

Guest
Всё должно работать, попробуй так
PHP:
$f=file("ip.txt");
for($i=0; $i<count($f);$i++)
{
if(trim($f[$i])==getenv("REMOTE_ADDR")){
echo "Айпи Найден!"; exit();}
else
{
header("Location: pl.php?menu=main");
    exit;
}
}
Айпи в файле то построчно записаны ?
То есть:
127.0.0.1
127.0.0.3
127.0.0.5
и т.д. ?
 

IBSN

Новичок
Неполучается с твоим кодом то =)

$f=file("ip/ban.txt");
for($i=0; $i<count($f);$i++)
{
if(trim($f[$i])==getenv("REMOTE_ADDR")){
echo "Айпи Найден!"; exit();}
else
{
header("Location: pl.php?menu=main");
exit;
}
}

когда ip стоит первым в файле тогда банитт, а если ну 2 или третий не банет =( в чем дело????
 

Апокалипсис

Guest
Всё должно работать если айпи записаны в строчку
 

Ямерт

The Old One
Не забудьте о возможности, что человек идёт через прокси.
PHP:
$from_proxy = getenv("HTTP_X_FORWARDED_FOR");
$ip = (!empty($from_proxy)) ? $from_proxy : getenv("REMOTE_ADDR");
 

si

Administrator
Не забудьте о возможности, что человек идёт через прокси.

$from_proxy = getenv("HTTP_X_FORWARDED_FOR");
а так же что в HTTP_X_FORWARDED_FOR может быть:
1. все что угодно
2. более одного ip/host
 
Сверху