Узнаем реальный ip адрес и user agent в OperaMini. - Comments

RSS
D

Малиновые штаны
код не новый, но что то мне кажится, реальный UA у оперы мод 2.06-3.12 он не узнает, с 4 да, там вроди канает.
A

Оранжевые штаны
зачем то всунуто preg_match вместо более быстрых строковых функций
Z

Клуракан
Azzido, ну секономишь ты 0.000000000001 сек и что с этого? xD
Денис Петрович, была бы у меня эта вторая опера я бы посмотрел что в ней такого, на всех операх которые щас идут в телах как родные арбузы работает функция нормально smile
M

Пришелец
Да это давно известно, а про моды это правильно
D

Пришелец
Какой кошмар!
$ip_adress = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; 
$user_agent = isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) ? $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'] : $_SERVER['HTTP_USER_AGENT']; 

Не нужны тут ни регулярки, ни строковые функции! Всё куда проще!
Проверял давно, но вряд ли что-то с тех пор поменялось. С модами оперы работает.
Z

Клуракан
dmitrich, ну конечно же, ничего не нужно, искусственный интеллект сделает все за вас ;)
D

Пришелец
DnBinUA, при чем тут AI?! Опера мини отправляет заголовок HTTP_X_OPERAMINI_PHONE_UA, содержащий модель телефона; если он есть - это наверняка она. Подделать, естественно, можно, но это не страшно.
В заголовке HTTP_X_FORWARDED_FOR опера отправляет ip, с которого человек соединился с ее серверами. Опять-таки подделать его можно, но опять-таки это не смертельно. Можно добавить какие-то условия (например, дополнительно проверять ip только тогда, когда присутствует первый заголовок), можно исхитриться еще как-нибудь... Но точно не регулярками. smile Во всяком случае, не здесь.
Z

Клуракан
dmitrich, ну можно и так проверять, разницы в быстродействии ты все равно не заметишь, не те объемы данных smile
Просто обновил немного алгоритм на сайте, сначало не о том подумал)
там есть проблема, опера иногда в HTTP_X_FORWARDED_FOR передает цепочку ип адресов и там регуляркой выдираем первый переданный ип адрес)

Землянин
И всетаки этот вопрос остается спорным...

Землянин
.....