Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


Михаил Фленов

А там случайно не стоит банальный редирект? Ты можешь сформировать запрос на сервере и направить его яндекс, только когда яндекс получит запрос от сервера, но от твоего имени, он отправит ответ тебе, а не серверу. Поэтому заморачиваться нет смысла, проще просто переслать пользователя на яндекс. При переадресации рефером будет выступать сервер. Ты уверен, что куки пересылаются с одного домена на другой? По идее это нарушение безопасности.


Руслан

Извините Михаил, что пишу здесь, но более удачной ветки я не нашел.
Ситуация такая. Есть домен на хостинге от webair.net. на этом домене есть скрипт который работает следующим образом.
Когда посетитель заходит на сайт, от его ip посылается GET запрос другому сайту, например на яндекс. То есть: я зашел например на сайт test.ru, а получилось так что я оказался на сайте yandex.ru. Со свои IP, а не с IP test.ru. Переадресация типа Header(Location бла-бла-бла) соответственно ничего не даст. Так как надо передать Куки и замаскировать REFERER. CURL сокеты тоже ни че не дают (тогда ip берется серверный) Ну вот как такое вообще может работать.
Неужели webair.net может подменять IP на клиентский, а не серверный. Я пробил там стоит апач. Просто я читал что были либо баги у хостеров или намеренно они предлагали такую возможность по подмене IP.

Вот как могут работать системы которые продают посетителей. Для накрутки сайта? Как они могут юзать чужой ip и перенаправить этот ip вам на сайт? Ну не могу никак понять.

Дали на одном форуме ответ: iframe - без редиректа
window.location – c.
Не подходит. Ведь нужн опередавать кукиси и рефера, а также в заголовках хост

Вот заголовки запроса:
$cookie = "__utma=206898501.427998370.1270905513.1271173905.1 271257094.9; __utmz=206898501.1270905513.1.1.utmcsr=(direct)|ut mccn=(direct)|utmcmd=(none); sid=302948373; b=b; __utmb=206898501.2.10.1271257094; __utmc=206898501";

$httpheader[0] = "Host: $host";
$httpheader[1] = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9";
$httpheader[2] = "Referer: $referer";
$httpheader[3] = "Cookie: $cookie";

Это заголовки, Без них система нас не пустит. Ну единственное, что я не проверял ser-Agent. А так все 100%

Пока я передаю через CURL. Но мне это не подходит, так как он берет ip сервера. А мне надо чтобы брал ip клиента посетившего сайт.
Ajax не все запросы передает. Но на 100% знаю что как то делают, так как есть такая система.
Как это можно сделать?

Я хочу понять как работают системы по покупке трафика/посетителей и потом его/их перенаправления на сайт клиента. Как они сохраняют ip и передают его. Если например ip был получен, что кто то кликнул на баннер или попандер на сайте. Потом сайт его продал выше стоящему сервису, а сервис вернул мне.
Вот opera mini, то как то работает.


Гриха

Спасибо за книгу!


psycho-coder

2Михаил
Спасибо. Нужно будет подумать над этим хорошенько). А прогу придется переписывать с нуля, т.к. исправлять то что там есть нет смысла.

[offtop]я только что понял, что не могу нормально высказать мысль((([/offtop]


Михаил Фленов

Решил все же не писать заметку.

Подход Delphi: компоненты доступа к данным располагаются в отдельном модуле DataModule. Этот модуль создается при запуске приложения и любая форма обращается к модулю и может выполнять запросы у себя в классе и обрабатывать данные.
В принципе, ты можешь то же самое реализовать на C#. Создай отдельный класс, который будет создаваться при запуске приложения. Это будет у тебя как бы DataModule. Можешь даже называть его так же. Ссылка на класс будет статична (глобальна). В этом классе будет компонент для создания соединения с базой данных и объекта таблиц и запросов. Ты можешь в любом окне обратиться через статичную переменную к этому классу и получить объект любой таблицы для работы с ним. Не нужно хранить глобально все параметры, достаточно одной переменной, указывающий на объект модуля данных.
Но я уже давно говорю, что надо идти дальше и полностью отделять код от логики. Форма должна получать от DataModule не объект, через который можно получить данные, а НЕПОСРЕДСТВЕННО ДАННЫЕ. В формах должны быть вызовы в стиле:

DataModule.ДайМнеДанныеХХХ();

Результатом может быть набор данных, и можно даже в виде массивов, а не в виде Table.
Опять же, в Delphi можно так же сделать, но никто не делает, потому что сама VCL написана в стиле 70-хх годов и примеры с Delphi поставляются в стиле 70-х годов.


Михаил Фленов

2psycho-coder

Жди отдельную заметку


DeN

bashk, +1


Михаил Фленов

2Сергей

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

Точно так же я скажу любому программисту, который переходит с C# или Java на Delphi - "забудьте C# и Java". Иначе не получиться написать успешный проект.

Писать действительно можно одинаково, но не всегда это нужно. Просто у этих языков и библиотек подход разный. Я считаю, что писать нужно с использованием языка и его преимуществ. А не пытаться реализовать в языке преимущества других.


psycho-coder

Ммм... Нужно выкинуть код доступа к базе в отдельный класс? Тогда значит, нужно передавать из класса данные, которые будут получены из базы, в класс окна и заполнять все поля этими данными?


Сергей

Забудьте Delphi как страшный сон

Михаил, зачем же так пренебрежительно?
Не правильно ли было бы сказать "забудьте ваши неправильные навыки кодирования на Delphi, как страшный сон". Сама среда Delphi тут ни в чем не виновата.
Чем объектно-ориентированные способности Delphi слабее чем в C#?
В нормальных книгах по Delphi черным по белому не рекомендуется использование глобальных переменных.
И ничего не мешает в Delphi так же как в твоём примере для C# обернуть все глобальные переменные в класс и обращаться к ним через свойства.
Delphi полностью объектно-ориентированный язык программирования. И ничего не мешает кодировать с его помощью "продвинуто" (100%-тно объектно ориентированно).


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне