Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Странный ip адрес, REMOTE_ADDR возвращает ip 2001:7d0:838f: 
:(
    Опции темы
Elfer
Дата 7.9.2016, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: -1
Всего: -1



Впервые столкнулся с такой проблемой, что ip заказчика возвращается в странном виде: 2001:7d0:838f:f780:d4c5:776d:9929:c5e3 
Возвращаю через $_SERVER["REMOTE_ADDR"]. Очень сильно удивился, что такой нестандартный ip и вывел всё содержимое $_SERVER:
Код

Array
(
    [HOSTNAME] => sn9.zone.eu
    [SHELL] => /bin/bash
    [PATH] => /opt/zone/sbin:/opt/zone/bin:/bin:/usr/bin:/sbin:/usr/sbin
    [TZ] => Europe/Tallinn
    [_] => /bin/nice
    [PHP_FCGI_MAX_REQUESTS] => 0
    [PHPRC] => /data01/virt39546/domeenid/www.styleup.clothing/phpini/styleup.clothing
    [PHP_INI_SCAN_DIR] => /data01/virt39546/domeenid/www.styleup.clothing/phpini/global
    [SCRIPT_NAME] => /index.php
    [REQUEST_URI] => /site/myIp
    [QUERY_STRING] => 
    [REQUEST_METHOD] => GET
    [SERVER_PROTOCOL] => HTTP/1.1
    [GATEWAY_INTERFACE] => CGI/1.1
    [REDIRECT_URL] => /site/myIp
    [REMOTE_PORT] => 50621
    [SCRIPT_FILENAME] => /data01/virt39546/domeenid/www.styleup.clothing/htdocs/index.php
    [SERVER_ADMIN] => [email protected]
    [CONTEXT_DOCUMENT_ROOT] => /data01/virt39546/domeenid/www.styleup.clothing/htdocs/
    [CONTEXT_PREFIX] => 
    [REQUEST_SCHEME] => http
    [DOCUMENT_ROOT] => /data01/virt39546/domeenid/www.styleup.clothing/htdocs/
    [REMOTE_ADDR] => 2001:7d0:838f:f780:d4c5:776d:9929:c5e3
    [SERVER_PORT] => 80
    [SERVER_ADDR] => 2a02:29e8:770:0:3::19
    [SERVER_NAME] => styleup.clothing
    [SERVER_SOFTWARE] => Apache / ZoneOS
    [SERVER_SIGNATURE] => Apache / ZoneOS Server at styleup.clothing Port 80


    [HTTP_COOKIE] => Drupal.toolbar.collapsed=0; _ga=GA1.2.1134957638.1470048367; jv_visits_count_LGheI6Pj5E=1; PHPSESSID=3d08fcdafc5e7714a70d2da14c18fda8
    [HTTP_CONNECTION] => Keep-Alive
    [HTTP_HOST] => styleup.clothing
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
    [HTTP_ACCEPT_LANGUAGE] => et-EE
    [HTTP_ACCEPT] => text/html, application/xhtml+xml, /
    [DZSP_IS_ESTONIAN_IP] => 1
    [SCRIPT_URI] => http://styleup.clothing/site/myIp
    [SCRIPT_URL] => /site/myIp
    [DZSP_PHP_FASTCGI_MODULE] => mod_zfpm
    [DZSP_MYSQL_HOST] => d39365.mysql.zonevs.eu
    [DZSP_PHP_MODE] => fastcgi
    [DZSP_CP_URL] => https://data.zone.ee/admin.php
    [DZSP_PMA_URL] => https://pma.zone.ee/
    [DZSP_VENDOR_URL] => https://www.zone.ee/
    [DZSP_VERSION] => 2
    [MM_COUNTRY_CODE] => EE
    [MMDB_INFO] => result found
    [MMDB_ADDR] => 2001:7d0:838f:f780:d4c5:776d:9929:c5e3
    [UNIQUE_ID] => V86l@9mSRQkAADXDNYwAAACq
    [REDIRECT_STATUS] => 200
    [REDIRECT_DZSP_IS_ESTONIAN_IP] => 1
    [REDIRECT_SCRIPT_URI] => http://styleup.clothing/site/myIp
    [REDIRECT_SCRIPT_URL] => /site/myIp
    [REDIRECT_DZSP_PHP_FASTCGI_MODULE] => mod_zfpm
    [REDIRECT_DZSP_MYSQL_HOST] => d39365.mysql.zonevs.eu
    [REDIRECT_DZSP_PHP_MODE] => fastcgi
    [REDIRECT_DZSP_CP_URL] => https://data.zone.ee/admin.php
    [REDIRECT_DZSP_PMA_URL] => https://pma.zone.ee/
    [REDIRECT_DZSP_VENDOR_URL] => https://www.zone.ee/
    [REDIRECT_DZSP_VERSION] => 2
    [REDIRECT_MM_COUNTRY_CODE] => EE
    [REDIRECT_MMDB_INFO] => result found
    [REDIRECT_MMDB_ADDR] => 2001:7d0:838f:f780:d4c5:776d:9929:c5e3
    [REDIRECT_UNIQUE_ID] => V86l@9mSRQkAADXDNYwAAACq
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /index.php
    [REQUEST_TIME_FLOAT] => 1473160699.86
    [REQUEST_TIME] => 1473160699
    [argv] => Array
        (
        )

    [argc] => 0
)

Очень удивился и попросил заказчика открыть 2ip.ru сайт дабы посмотреть что там покажет. Показало: 90.190.172.98
Полез в интернет искать объяснения увиденному, нашёл только то, что ip желательно определять по такому алгоритму:
Код

function ip() {
    if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
        $ip = $client;
    elseif (filter_var( @$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
        $ip = $forward;
    else $ip = $_SERVER['REMOTE_ADDR'];
    return $ip;
}

Взял его себе на вооружение, но с моей проблемой этот код не поможет.
Подскажите, плиз, как быть с такими странными ip "2001:7d0:838f:f780:d4c5:776d:9929:c5e3", как их привести к нормальному виду?
PM MAIL WWW ICQ   Вверх
a0730
Дата 7.9.2016, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Отключи IPv6.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
a0730
Дата 7.9.2016, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Отключи IPv6.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Elfer
Дата 8.9.2016, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: -1
Всего: -1



Как отключить IPv6? Я же не скажу каждому юзеру отключить IPv6.
Задача в том, чтобы по ip определять из какой страны пользователь. База ip есть, функционал тоже есть. Нужно чтобы эти ip, с которых заходят пользователи были стандартные: числа и точки. База с ip адресами и странами тоже содержим стандартные ip. Т.е. я не могу ip вида 2001:7d0:838f:f780:d4c5:776d:9929:c5e3 сравнивать с ip в этой базе. Мне нужно эти странные ip приводить к нормальному виду. На 2ip.ru возвращается почему-то нормальный ip. Там же как-то делается это PHP-средствами на автомате.

Это сообщение отредактировал(а) Elfer - 8.9.2016, 11:51
PM MAIL WWW ICQ   Вверх
gta4kv
Дата 11.9.2016, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Нельзя привести эти "странные ip" к нормальному виду, потому что это и есть нормальный вид. GeoIP давно поддерживает IPv6, в чем проблема?
PM MAIL   Вверх
Elfer
Дата 12.9.2016, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: -1
Всего: -1



Хорошо, почему тогда 2ip.ru показал привычный нам ip-адрес из цифр и точек? Попробую также поискать в сети базу ip-адресов и стран расширенную, с нестандартными ip. Очень мало информации в интернете по этому поводу, тяжело найти ответ. Вот рассчитываю на ответы гуру.
PM MAIL WWW ICQ   Вверх
gta4kv
Дата 16.9.2016, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Еще раз, вам надо убрать из головы понятие про "нестандартные".
Тут все предельно просто, адреса в диапазон 1.1.1.1 - 255.255.255.255 (IPv4) заканчиваются, поэтому повсеместно вводится новый формат (IPv6). И это происходит уже достаточно давно.Информации об этом в интернете настолько много, что читать можно минимум месяц.

А теперь к проблеме:
Полагаю, что для определения географической принадлежности пользователя вы используете базу GeoIP (она, мне кажется, в общем-то одна). Так вот у этой базы давно есть обновленная версия с IPv6. Так что вам надо сделать всего две вещи: 

1) Почитать про IPv6 и выкинуть из лексикона понятие про странный/нестандартный IP (Ибо это уже давно стандарт)
2) Обновить базу GeoIP

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



Это сообщение отредактировал(а) gta4kv - 16.9.2016, 08:59
PM MAIL   Вверх
_zorn_
Дата 16.9.2016, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(gta4kv @  16.9.2016,  15:58 Найти цитируемый пост)
 адреса в диапазон 1.1.1.1 - 255.255.255.255 (IPv4) заканчиваются, поэтому повсеместно вводится новый формат (IPv6)

На самом деле 0.0.0.0 - 255.255.255.255. А еще честнее от 00000000 до FFFFFFFF
Всякие броадкасты/юникасты/эникасты просто по договоренности придуманы. На самом деле IP адрес обычное 32 битное число и ваш 1.1.1.1 выглядит так - 0x01010101
Ну а 10.1.1.1 (кстати приватный диапазон по договоренности) 0x0A010101
and so on  smile 
Ну не хватило 32 бит на весь мир  smile 


Это сообщение отредактировал(а) _zorn_ - 16.9.2016, 16:28
PM MAIL   Вверх
gta4kv
Дата 16.9.2016, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Точняк. Не знаю откуда вообще придумал 1.1.1.1, даже 1.0.0.0 было бы логичнее  smile 
PM MAIL   Вверх
_zorn_
Дата 16.9.2016, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(gta4kv @  17.9.2016,  01:14 Найти цитируемый пост)
даже 1.0.0.0 было бы логичнее

Кстати кому принадлежит эта сеть ? Хотел бы себе такую (как раньше аську шестизнак smile)

Цитата
descr:          Research prefix for APNIC Labs

Значит тоже "зарезервировано".
Писец, столько A сетей пропадает, а они IPv6 выдумывают smile

Хотя кто мы такие, чтобы стремать придумщиков за организацию и выдачу адресов...
128 бит хватит на каждый кросовок на планете )

Это сообщение отредактировал(а) _zorn_ - 16.9.2016, 18:25
PM MAIL   Вверх
_zorn_
Дата 16.9.2016, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Вообще я сейчас подумал...
Сначала придумал надуманную проблему что их запоминать тяжелее (попробуй зайти на этот абырвалг с двоеточиями). 
Но потом подумал с другой стороны - нам (технарям в том числе) этого не избежать. А основная проблема в старом оборудовании и САМОЕ ГЛАВНОЕ в старых сетевых специалистах.
Одномоментно никто на IPv6 все не переведет.
Но этого не избежать.

Так что ответ ТС - скоро вы будете говорить про "127.0.0.1" - "странный айпи адрес"  smile 

ЗЫ. Кстати, знали что вся А сеть 127 - это локалхост ?  smile 
Т.е. 127.213.12.43 - тот же самый локалхост )
Это про "разумное" использование адресного пространства  smile

Добавлено через 14 минут и 36 секунд
Хотя кому я вру. Сам же не раз отшивал предложения типа "вставить определенное поведение для определенного объекта при определенных обстоятельствах".
А учитывая сколько сетевого оборудования (а там есть прошивки, ага) и т. п. в мире существует... пусть лучьше будут договоренности...

Это сообщение отредактировал(а) _zorn_ - 16.9.2016, 18:44
PM MAIL   Вверх
_zorn_
Дата 16.9.2016, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Это я представил себя в качестве производителя сетевой железяки smile
Сейчас то "договоренности" не особо соблюдаются бывает. IPv6 по идее должно решить эту "проблему".
Но как видно проблема не в недостатке... хотя в нем тоже )

Это сообщение отредактировал(а) _zorn_ - 16.9.2016, 19:10
PM MAIL   Вверх
Elfer
Дата 18.9.2016, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: -1
Всего: -1



Спасибо за толкование, надеюсь оно верное и прислушаюсь к этому. Поищу базу под IPv6 адреса.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1608 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.