Вход на сайт
Скрипт для определения IP
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, важно, чтобы сработало..
Или может еще как-то проще можно, может, я чересчур усложнил задачу?
<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, важно, чтобы сработало..
Или может еще как-то проще можно, может, я чересчур усложнил задачу?
NEW 27.11.09 17:22
тут почитай
http://ru2.php.net/manual/de/reserved.variables.server.php
http://ru2.php.net/manual/de/reserved.variables.server.php
В ответ на:
'REMOTE_ADDR'
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
'REMOTE_ADDR'
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
NEW 27.11.09 18:39
в ответ Валидол 27.11.09 17:22
спасибо, вот так примерно получилось
ссылка же, на которую "жертва" должна кликнуть,будет выглядеть так:
<a href="http://my_site.com/index.php?go=http://site.com">http://site.com</a>
В ответ на:
<?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();}
?>
<?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>
NEW 28.11.09 09:29
в ответ GANDJUBAS 27.11.09 19:56
Ну можно было догадаться, что это не мой код.
старый я уже для того, чтобы код писать..почитать могу..спросил просто в разных местах, вот в одном человек показал примерно так, в другом - рабочая часть покороче -
Что откуда растет, я понимаю, но в данном конкретном случае мне по большому чету все равно, строчкой больше - меньше, лишь бы работало.Тут же не 100000 строк, чтобы переживать об этом...
старый я уже для того, чтобы код писать..почитать могу..спросил просто в разных местах, вот в одном человек показал примерно так, в другом - рабочая часть покороче -
В ответ на:
<?php
$file = fopen('log.txt', 'a');
fwrite($file, $_SERVER['REMOTE_ADDR']."\r\n");
fclose($file);
?>
<?php
$file = fopen('log.txt', 'a');
fwrite($file, $_SERVER['REMOTE_ADDR']."\r\n");
fclose($file);
?>
Что откуда растет, я понимаю, но в данном конкретном случае мне по большому чету все равно, строчкой больше - меньше, лишь бы работало.Тут же не 100000 строк, чтобы переживать об этом...
NEW 28.11.09 12:38
в ответ alexnaum 28.11.09 09:29
Тут же не 100000 строк, чтобы переживать об этом...
------
Нее, не 100К... Только вот какая штука - при определенных условиях в файле будет мешанина... уже при двух клиентах.
Кроме того, ось, обычно, имеет ограничение на количество одновременно открытых файлов... и количество это весьма небольшое. 1000 одновременных клиентов просто положит сервер.
Кроме того, операция открытия файла - процесс весьма медленный. Я бы посмотрел на предмет следующего - на уровне апликации предусмотрел стек для складирования айпишек и там же срасывал его в файл... не закрывая оный...
------
Нее, не 100К... Только вот какая штука - при определенных условиях в файле будет мешанина... уже при двух клиентах.
Кроме того, ось, обычно, имеет ограничение на количество одновременно открытых файлов... и количество это весьма небольшое. 1000 одновременных клиентов просто положит сервер.
Кроме того, операция открытия файла - процесс весьма медленный. Я бы посмотрел на предмет следующего - на уровне апликации предусмотрел стек для складирования айпишек и там же срасывал его в файл... не закрывая оный...
NEW 28.11.09 14:08
в ответ Murr 28.11.09 12:38
Кроме того, ось, обычно, имеет ограничение на количество одновременно открытых файлов... и количество это весьма небольшое. 1000 одновременных клиентов просто положит сервер.
Я понимаю. Речь идет о конкретной, узкой, описанной в 1 посте задаче:ссылка предназначена для одного конкретного,довольно осторожного и одержимого, но не очень умного неизвестного мне маньяка, с целью выявить его айпишник, и только его. Причем выяснить это надо на ресурсе, мне не принадлежащем: на мой ресурс он не пойдет, а на заманчивую ссылку кликнет, я думаю, с вероятностью близкой к 1. Есть, конечно, возможность, что я узнаю только прокси, но, судя по уровню айкью, клиент таких слов не знает.
После решения задачи- в любом случае, скрипт будет снесен, ну или ждать следующего клиента.
Конечно, для серьезных задач и решения были бы более серьезные, наверное, было бы разумнее не в файле,а в БД хранить информацию, но тут я думаю и так сойдет
Я понимаю. Речь идет о конкретной, узкой, описанной в 1 посте задаче:ссылка предназначена для одного конкретного,довольно осторожного и одержимого, но не очень умного неизвестного мне маньяка, с целью выявить его айпишник, и только его. Причем выяснить это надо на ресурсе, мне не принадлежащем: на мой ресурс он не пойдет, а на заманчивую ссылку кликнет, я думаю, с вероятностью близкой к 1. Есть, конечно, возможность, что я узнаю только прокси, но, судя по уровню айкью, клиент таких слов не знает.
После решения задачи- в любом случае, скрипт будет снесен, ну или ждать следующего клиента.
Конечно, для серьезных задач и решения были бы более серьезные, наверное, было бы разумнее не в файле,а в БД хранить информацию, но тут я думаю и так сойдет

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

и закончился
-----
Сессия должна была остаться. Ну а там, где есть сессии - есть и место их
хранения. Какова функциональность того места и можно ли туда достучаться
- не ведаю...

NEW 29.11.09 10:14
Нет не умеет, и думаю не будет уметь.
То alexnaum
Что же касается самого вопроса и альтернативы стека для складывания айпишек, то это мускул. С обычным файлом, как уже написал(а) ;) Murr, при большом запросе сервер повиснит, да и процедуры записи в файл не могут происходить одновременно, что вызовет ошибку, если хотя бы пара юзверей совершенно одновременно дадут запрос на запись.
Поэтому единственный выход, это создать таблицу айпишек в базе, и уже в базу всё складировать. Во первых такой вариант не даст большой нагрузки на сервер, и не создаст проблем с одновременной записью. Ну и второе, сами данные будет проще из базы обрабатывать, чем из текстового файла.
В этом можешь не сомневаться, сам через подобное прошёл. Тоже одно время думал заменить базу данных текстовыми файлами, но столкнулся с разными проблемами, которые просто перечеркнули все казавшиеся явные преимущества. На первых порах, пока сайт будет мало посещаем, такой вариант прокатит, но потом может возникнуть большая головная боль, так что лучше сразу делать правильно.
в ответ Murr 29.11.09 04:08
В ответ на:
а что пыхыпы уже такое умеет?
а что пыхыпы уже такое умеет?
В ответ на:
А фиг его знает - РНР Я не смотрел и не планирую.
А фиг его знает - РНР Я не смотрел и не планирую.
Нет не умеет, и думаю не будет уметь.
То alexnaum
Что же касается самого вопроса и альтернативы стека для складывания айпишек, то это мускул. С обычным файлом, как уже написал(а) ;) Murr, при большом запросе сервер повиснит, да и процедуры записи в файл не могут происходить одновременно, что вызовет ошибку, если хотя бы пара юзверей совершенно одновременно дадут запрос на запись.
Поэтому единственный выход, это создать таблицу айпишек в базе, и уже в базу всё складировать. Во первых такой вариант не даст большой нагрузки на сервер, и не создаст проблем с одновременной записью. Ну и второе, сами данные будет проще из базы обрабатывать, чем из текстового файла.
В этом можешь не сомневаться, сам через подобное прошёл. Тоже одно время думал заменить базу данных текстовыми файлами, но столкнулся с разными проблемами, которые просто перечеркнули все казавшиеся явные преимущества. На первых порах, пока сайт будет мало посещаем, такой вариант прокатит, но потом может возникнуть большая головная боль, так что лучше сразу делать правильно.
NEW 29.11.09 14:26
в ответ GANDJUBAS 29.11.09 12:56
а мне казалось, что у всех хостеров имеется раздел Статистика, где можно много интересного посмотреть
Żywie Biełarus!
Беларусь на пути перемен "Выходи гулять" --> https://youtu.be/aOnp0kfAr80

NEW 29.11.09 16:22
в ответ michelfrance 29.11.09 14:26
Ну а если у вас на странице 2-3 места под баннеры на которых крутятся 30-40 различных баннеров и вам нужна статистика по кликам по ним на разных страницах вашего сайта, то тут врядли помогут логи апача. У меня есть такой скрипт, но он не на PHP и врядли вам поможет.
Создание сайтов, онлайн-магазинов в Германии