подсчет ip`шников в базе

IBSN

Новичок
подсчет ip`шников в базе

Здравствуйте!
Вопрос:
у меня хранятся ip в base.txt в таком виде:

195.250.260.78
45.78.880.90
195.250.260.78
45.78.880.90
2323.54353.6556

короче суть такова: как мне подсчитать сколько одинаковых 195.250.260.78 ip в базе
Как сделать???
 

BigDaddy

Guest
Я бы, наверное, сделал так:

$fd = fopen ("base.txt", "r");
while (!feof ($fd)) {
$ip= fgets($fd, 4096);
$counter[rtrim($ip)]++;
}
fclose ($fd);
foreach ($counter as $ip => $count) {
echo "$ip; Count: $count<br>\n";
}

ЗЫ: а че это за айпи такое: 2323.54353.6556 ? :))
 

IBSN

Новичок
<?php
$found = 0;
$f=file("base.txt");
for($i=0; $i<count($f);$i++) {

if(trim($f[$i])==getenv("REMOTE_ADDR")) {
$found = $found+1;

}
}
print $found;
?>

все сделал, чето неподумал, что так легко =)
 

XtremallyPurpur

Новичок
PHP:
  $arr=file("base.txt");
  $i=0; 
  foreach ($arr as $value) {
    if (trim($value)=="195.250.260.78") $i++;
 }
print $i;
ежели файл большой, то читать построчно fgets
 

alpes

Весь мир на ладони
[m]array_count_values[/m]:
PHP:
$ip=file("base.txt"); 
$ip=array_count_values($ip);
echo $ip[$_SERVER["REMOTE_ADDR"]." "];
 

alpes

Весь мир на ладони
2 IBSN:
Юзай БД, через разрастающиеся файлы + блокировки при вставке новых строк твои скрипты будут подтормаживать. С БД же работать и проще и приятней ;)
 

IBSN

Новичок
P.S. файл не большой, просто там хранятся ip тех кто ввел пароль неправильно и автоматом после 3 раза ban по ip
 

XtremallyPurpur

Новичок
так зачем их в файл тогда?
создавай сессию для каждого нигера
и проверяй сколько раз он ввел пароль
 

RomikChef

Guest
создавай сессию для каждого нигера
ты не понимаешь, что такое сессии, и для чего они нужны.
Не надо здесь сессии советовать, они не при чем.
 

XtremallyPurpur

Новичок
насколько я понял, ему нужно проверять количество неправильно введенных паролей в пределах одного сеанса

я имел ввиду вот что:

PHP:
session_start();
if(!isset($_SESSION['number']) $_SESSION['number']=1;//количество неправильно введенных паролей
//тут рисуешь форму с экшеном на самого себя
if(правильный пароль) {
  //выполняешь программу 
} 
if (isset($_SESSION['number'])){
  $_SESSION['number']++;
  if ($_SESSION['number']==3) exit("ваши 3 попытки исчерпаны");
}
не нужно тогда в файле хранить АЙпи и процессить файл в поисках трех одинаковых.
 

Verk

Guest
Клиент оскорбится, зайдет на сайт в новом окне браузера и получит еще 3 попытки, а затем еще 3 ... :)
 

RomikChef

Guest
XtremallyPurpur
ты совсем такой тупой, или прикидываешься?
ЗАЧЕМ проверять правильность в одном сеансе?
Ты вообще понимаешь - для чего ограничичвают количество попыток?
Для предотвращения взлома.
И при чем тут сеансы?
Кто мешает хакеру закрывть окно и зайти снова?

Не сеанс надо банить, а айпи.
 
Сверху