Deutsch

Скрипт для определения IP

452  1 2 все
alexnaum местный житель27.11.09 16:37
alexnaum
NEW 27.11.09 16:37 
В двух словах:хочу сделать, чтобы чел, кликнув на ссылку типа
<a href="http://my_site.com/index.php">http://site.com</a> попадал бы сначала на мой сайт -
http://my_site.com/index.php ,
после прохождения кода в index.php был бы редирект на страницу, куда он хотел - http://site.com
Сам код должен исполнить одну единственную функцию - получить IP кликнувших на данную ссылку и записать эти IP-шники скажем в простой текстовый файл, лежащий тут же.
Может, есть уже такое готовое решение, в принципе, не обязательно PHP, важно, чтобы сработало..
Или может еще как-то проще можно, может, я чересчур усложнил задачу?
#1 
Валидол постоялец27.11.09 17:22
NEW 27.11.09 17:22 
в ответ alexnaum 27.11.09 16:37, Последний раз изменено 27.11.09 17:23 (Валидол)
тут почитай
http://ru2.php.net/manual/de/reserved.variables.server.php
В ответ на:
'REMOTE_ADDR'
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.

#2 
alexnaum местный житель27.11.09 18:39
alexnaum
NEW 27.11.09 18:39 
в ответ Валидол 27.11.09 17:22
спасибо, вот так примерно получилось
В ответ на:
<?php
$link = $_GET['go'];
if(!empty($link)){
$file=file_get_contents("ip.txt");
$ip=$_SERVER['REMOTE_ADDR']."\n";
$ip .=$file."\n".$ip;
$fd = fopen('ip.txt','a');
fwrite($fd,$ip);
fclose($fd);
sleep(3);//задержка в 3 сек
header("Location: $link"); EXIT();}
?>

ссылка же, на которую "жертва" должна кликнуть,будет выглядеть так:
<a href="http://my_site.com/index.php?go=http://site.com">http://site.com</a>
#3 
GANDJUBAS Ганджубас27.11.09 19:56
GANDJUBAS
NEW 27.11.09 19:56 
в ответ alexnaum 27.11.09 18:39
Ваш код взрывает мой мозг...
для чего нужны строки:
$file=file_get_contents("ip.txt");
$ip .=$file."\n".$ip;
?
#4 
katran76 коренной житель27.11.09 20:10
NEW 27.11.09 20:10 
в ответ GANDJUBAS 27.11.09 19:56
В ответ на:
для чего нужны строки...:

ну ты как ребёнок,
для определения есть ли уже на харде битые сектора или ещё нету
#5 
katran76 коренной житель27.11.09 20:19
NEW 27.11.09 20:19 
в ответ katran76 27.11.09 20:10
пишут тут всякие, а потом у них сервера 5 часов стартуют
#6 
alexnaum местный житель28.11.09 09:29
alexnaum
NEW 28.11.09 09:29 
в ответ GANDJUBAS 27.11.09 19:56
Ну можно было догадаться, что это не мой код.
старый я уже для того, чтобы код писать..почитать могу..спросил просто в разных местах, вот в одном человек показал примерно так, в другом - рабочая часть покороче -
В ответ на:
<?php
$file = fopen('log.txt', 'a');
fwrite($file, $_SERVER['REMOTE_ADDR']."\r\n");
fclose($file);
?>

Что откуда растет, я понимаю, но в данном конкретном случае мне по большому чету все равно, строчкой больше - меньше, лишь бы работало.Тут же не 100000 строк, чтобы переживать об этом...
#7 
Murr коренной житель28.11.09 12:38
Murr
NEW 28.11.09 12:38 
в ответ alexnaum 28.11.09 09:29
Тут же не 100000 строк, чтобы переживать об этом...
------
Нее, не 100К... Только вот какая штука - при определенных условиях в файле будет мешанина... уже при двух клиентах.
Кроме того, ось, обычно, имеет ограничение на количество одновременно открытых файлов... и количество это весьма небольшое. 1000 одновременных клиентов просто положит сервер.
Кроме того, операция открытия файла - процесс весьма медленный. Я бы посмотрел на предмет следующего - на уровне апликации предусмотрел стек для складирования айпишек и там же срасывал его в файл... не закрывая оный...
#8 
alexnaum местный житель28.11.09 14:08
alexnaum
NEW 28.11.09 14:08 
в ответ Murr 28.11.09 12:38
Кроме того, ось, обычно, имеет ограничение на количество одновременно открытых файлов... и количество это весьма небольшое. 1000 одновременных клиентов просто положит сервер.
Я понимаю. Речь идет о конкретной, узкой, описанной в 1 посте задаче:ссылка предназначена для одного конкретного,довольно осторожного и одержимого, но не очень умного неизвестного мне маньяка, с целью выявить его айпишник, и только его. Причем выяснить это надо на ресурсе, мне не принадлежащем: на мой ресурс он не пойдет, а на заманчивую ссылку кликнет, я думаю, с вероятностью близкой к 1. Есть, конечно, возможность, что я узнаю только прокси, но, судя по уровню айкью, клиент таких слов не знает.
После решения задачи- в любом случае, скрипт будет снесен, ну или ждать следующего клиента.
Конечно, для серьезных задач и решения были бы более серьезные, наверное, было бы разумнее не в файле,а в БД хранить информацию, но тут я думаю и так сойдет
#9 
katran76 коренной житель28.11.09 16:17
NEW 28.11.09 16:17 
в ответ Murr 28.11.09 12:38
В ответ на:
на уровне апликации предусмотрел стек для складирования айпишек и там же срасывал его в файл... не закрывая оный...

а что пыхыпы уже такое умеет? Если я правильно помню там просто нет уровня приложения - запрос пришёл, скрипт запустился, ответ сгенерил и закончился.
#10 
GANDJUBAS Ганджубас28.11.09 16:25
GANDJUBAS
NEW 28.11.09 16:25 
в ответ katran76 28.11.09 16:17
не обращай внимания... обычный околотемный пост от мурки, как пишут "отцы"...
#11 
Murr коренной житель29.11.09 04:06
Murr
NEW 29.11.09 04:06 
в ответ katran76 28.11.09 16:17
а что пыхыпы уже такое умеет?
------
А фиг его знает - РНР Я не смотрел и не планирую. Об этом говорил не раз.
И если аппликатиона лаера там нету - делаю совершенно правильно.
и закончился
-----
Сессия должна была остаться. Ну а там, где есть сессии - есть и место их
хранения. Какова функциональность того места и можно ли туда достучаться
- не ведаю...
#12 
Murr коренной житель29.11.09 04:08
Murr
NEW 29.11.09 04:08 
в ответ GANDJUBAS 28.11.09 16:25
не обращай внимания...
------

#13 
Sergo2008 местный житель29.11.09 10:14
Sergo2008
29.11.09 10:14 
в ответ Murr 29.11.09 04:08
В ответ на:
а что пыхыпы уже такое умеет?

В ответ на:
А фиг его знает - РНР Я не смотрел и не планирую.

Нет не умеет, и думаю не будет уметь.
То alexnaum
Что же касается самого вопроса и альтернативы стека для складывания айпишек, то это мускул. С обычным файлом, как уже написал(а) ;) Murr, при большом запросе сервер повиснит, да и процедуры записи в файл не могут происходить одновременно, что вызовет ошибку, если хотя бы пара юзверей совершенно одновременно дадут запрос на запись.
Поэтому единственный выход, это создать таблицу айпишек в базе, и уже в базу всё складировать. Во первых такой вариант не даст большой нагрузки на сервер, и не создаст проблем с одновременной записью. Ну и второе, сами данные будет проще из базы обрабатывать, чем из текстового файла.
В этом можешь не сомневаться, сам через подобное прошёл. Тоже одно время думал заменить базу данных текстовыми файлами, но столкнулся с разными проблемами, которые просто перечеркнули все казавшиеся явные преимущества. На первых порах, пока сайт будет мало посещаем, такой вариант прокатит, но потом может возникнуть большая головная боль, так что лучше сразу делать правильно.
#14 
GANDJUBAS Ганджубас29.11.09 12:56
GANDJUBAS
NEW 29.11.09 12:56 
в ответ Sergo2008 29.11.09 10:14
Если с умом подойти к вопросу, то такого рода лог вообще не нужен.
Все это прекрасно записывает апач...
#15 
michelfrance гость на Земле29.11.09 14:26
michelfrance
NEW 29.11.09 14:26 
в ответ GANDJUBAS 29.11.09 12:56
а мне казалось, что у всех хостеров имеется раздел Статистика, где можно много интересного посмотреть
Żywie Biełarus! Беларусь на пути перемен "Выходи гулять" --> https://youtu.be/aOnp0kfAr80
#16 
Poiser знакомое лицо29.11.09 16:22
Poiser
NEW 29.11.09 16:22 
в ответ michelfrance 29.11.09 14:26
Ну а если у вас на странице 2-3 места под баннеры на которых крутятся 30-40 различных баннеров и вам нужна статистика по кликам по ним на разных страницах вашего сайта, то тут врядли помогут логи апача. У меня есть такой скрипт, но он не на PHP и врядли вам поможет.
Создание сайтов, онлайн-магазинов в Германии
#17 
GANDJUBAS Ганджубас29.11.09 23:34
GANDJUBAS
NEW 29.11.09 23:34 
в ответ Poiser 29.11.09 16:22
В ответ на:
то тут врядли помогут логи апача

Это почему? Если баннеры сделаны как перенаправление аля "?link=xxx", то вытащить из логов апача grep-ом нужные записи и составить по ним статистику - задача нескольких минут...
#18 
Poiser знакомое лицо30.11.09 20:36
Poiser
NEW 30.11.09 20:36 
в ответ GANDJUBAS 29.11.09 23:34
Да в принципе вы правы. Но решение не универсально, т.к. апач это частный случай. Например php отлично работает и на Windows 2008 Server ;)
Создание сайтов, онлайн-магазинов в Германии
#19 
katran76 коренной житель30.11.09 21:19
NEW 30.11.09 21:19 
в ответ Poiser 30.11.09 20:36, Последний раз изменено 30.11.09 21:20 (katran76)
В ответ на:
php отлично работает и на Windows 2008 Server ;)

IIS если уж на то пошло
поскольку апач тоже отлично работает и на Windows 2008 Server
#20 
1 2 все