title
Description
Body
$_SERVER['HTTP_X_FORWARDED_FOR'] использую для определения реального IP-адреса, при условии что USER_AGENT Опера Мини.
И вот что получается - временами в переменной X_FORWARDED_FOR передаются айпи в таком виде:
123.123.123.123,
или
123.123.123.123.
И вот что нужно чтобы определить верный айпи без ., Но следует учесть что может и что-то другое еще может быть в этих значениях. Эти два примера, это то что мне попало только.
Вот мой вариант решения задачи:
если ЮА опера мини
|
|
Может у кого есть другие предположения на этот счет?
Добавлено спустя 2 минуты 56 секунд:
Сам себя поправлю.
Думаю лучше будет заменить split() на explode()
Отредактировано WebGraf (2009.12.27 00:16)
Неактивен
да, конечно. split - это регулярка из состава ereg, следовательно deprecated.
На сколько я помню, там еще дальше могут быть IP, после запятой, если используются прокси и сервеам оперы передается X-FORWARDED-FOR. А вообщке, вполне нормальное решение разбивка по explode, ИМХО.
Неактивен
Кажется я сам себя обманываю
188.115.194.1,12.12.
код выше разобьет на 5 частей. ну допустим что я использую 4 из них для построения айпи
последняя (4) часть будет 1,12
думаю стоит о интвал подумать
Отредактировано WebGraf (2009.12.27 17:48)
Неактивен
ну да, либо еще sprintf
|
|
Gemor ошибся, в sprintf нужен спецификатор типа %d (%u)
Можно еще так:
|
|
Неактивен
И всетаки вариант с интвал самый быстрый.
Вариант с sprintf('%d', $ips[3]) также хорош
А вот preg_match - это перебор. К чему эта излишняя нагрузка?
Добавлено спустя 6 минут 35 секунд:
Ну и сразу по теме еще 1 вопрос.
Какой сервер использовать лучше всего для проверки айпи.
На данный момент использую whois.lacnic.net
Неактивен