сразу вопрос по flock() как поняно из описания для исключения одновременного обращения к файлу двумя или более процессами.. а что будет если файл будет залочен а к нему нуно будет еще кому то обратится с записью в него инфы.?
нет, вы ошибаетесь, я здесь для того, чтобы помочь тем, кому мне хочется помочь, я никому не обязан и мне, соответственно, тоже никто не должен
правильно! я сказал - что означает что если есть возможность помоги, нет никто тебе слова не скажет т.к. ничего не должен...
Я пару месяцев назад писал простой движок для сайта на заказ, с собственной статистикой. Она работала на файлах. Как там значит было: каждый день создавался файл с именем date('dmY').txt, в него записывался IP каждого посетителя. Кроме него был основной файл статистики, в котором был серализованный массив. Каждым ключем массива была дата формата dmY, которому соответствовал вложенный массив с хитами и хостами. При каждом просмотре страницы скрипт проверяет, есть ли IP-адрес клиента в файле с именем date('dmY').txt, и, если есть - увеличивал на 1 число хитов и хостов и вносил IP в список. Если такой IP там уже есть, то только увеличивал число хитов. Оригинал потерял, но вот сляпал на скору руку (не проверял, возможны ошибки в коде) PHP: <?php $date=date('dmY'); $ip=$_SERVER['REMOTE_ADDR']; $allstat=unserialize(('allstat.db')); //Получаем всю статистику ввиде массива $today=@file_get_contents($date.'.txt'); //Получаем список сегодняшних хостов if(!strstr($today,$ip)) //Если хост новый { $allstat[$date['hit']]+=1; //Увеличиваем хиты $allstat[$date['host']]+=1; //Увеличиваем хосты file_put_contents($date.'.txt',$today.$ip."\n"); //Вносим IP хоста в список сегодняшних } else { $allstat[$date['hit']]+=1; //Увеличиваем только хиты } file_put_contents('allstat.db',serialize($allstat)); ?> Вот такой хитроумный, но отлично работающий алгоритм :lol: У него есть ряд приемуществ: 1)Не требует БД 2)Компактен (всего 2 файла и короткий код) :lol:
Нет, это если они все через проксю - т.е. без внешнего IP, гораздо чаще встречается что провайдеры выдают динамический внешний IP-адрес, тогда эффект обратный...
Паспорт пользователя интернета: [IP+Куки+Имя браузера]. Определяя всё это, можно быть на 98.1% увереным, что всё правильно считается.
А я здесь ваще для получения удовольствия от прочтения двух моих самых любимых разделов - "вопросы от блондинок" и "помойка".
У нас 80% города плюс почти 100% области - в сумме около 200-300 тысяч пользователей, подключены к одному провайдеру, который выдаёт ip из диапазона 10.250.х.х.
Ты хоть понял что сказал? В диапазоне 10.250.0.0 - 10.250.255.255 всего то 65535 адресов (255.255 широковещательный) - а ты гришь 200-300 тысячь
Святая наивность. У нас вот у провайдера клиентов тоже больше, чем IP адресов, и что? У меня в фирме, за НАТом на 1 внешнем IP - сетка класса А.
Горбунов Олег Дык дело в том что 10.250.х.х - уже внутренние адреса :lol: Далее - по (уже устаревшим данным 2004 год http://www.upweek.ru/doc/doc.php?aid=158 ) в Москве на 100 жителей - 20 точек доступа, т.е. примерно 500 тысяч, таким образом у крупнейшего оператора (МТУ), если сейчас примерно 300 тысяч, то можно прикинуть что и сейчас это меньше половины подключений. Так что ближе к истине наверное быдет 40% города и 60% области в лучшем случае
Ну, если так - в нашем городе 600тыс. населения. В области - не знаю, наверное 2-4 миллиона. Но у нас "плотность подключения к инету" явно ниже, чем в Москве. 80% - я имел в виду от подключенных к инету, а не от общего колва населения. именно это и имел в виду.
[vs] Эм.. Я работал в одной провайдерской конторе и у меня есть знакомые из других. Так вот, в большинстве домашних сетей один динамический белый IP соответствует порядка 25 - 75 пользователям. P.S. В общаге в которой я сейчас соадминствую 7 внешних IP к которым подключено 200 человек...