Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: GeoIP и IPv6
Форумы портала PHP.SU » » Если скрипт не работает » GeoIP и IPv6

Страниц (1): [1]
 

1. Viper - 21 Ноября, 2011 - 16:21:03 - перейти к сообщению
Потребовалось обрабатывать адреса IPv6 и попробовав использовать базу от Maxmind получил такой высер.

CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: inet_pton() [function.inet-pton]: Unrecognized address 2001:67c:3a0:ffff:ffff:ffff:ffff in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 471
  2.  
  3. Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 529
  4.  
  5. Warning: array_merge() [function.array-merge]: Argument #1 is not an array in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 529
  6.  
  7. Warning: inet_pton() [function.inet-pton]: Unrecognized address 2001:67c:3a0:ffff:ffff:ffff:ffff in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 471
  8.  
  9. Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 529
  10.  
  11. Warning: array_merge() [function.array-merge]: Argument #1 is not an array in C:\xampplite\htdocs\components\libraries\geoip\geoip.inc on line 529


В файле geoip_country_id_by_addr_v6() высер ссылается на inet_pton() что логично. Но проблема остается непонятной. В этот же момент IPv4 адреса обрабатываются нормально.

Есть идеи?

PS! Все либы и базы естно подключены.
2. Данил_123 - 21 Ноября, 2011 - 16:40:21 - перейти к сообщению
on line 471
on line 529

cтроки +/-1 посмотри
3. Мелкий - 21 Ноября, 2011 - 16:43:36 - перейти к сообщению
PHP собран с поддержкой ipv6? Как проверить первый коммент: http://ru2.php.net/manual/en/fun...-pton.php#104917
(Добавление)
А вообще - меня сам адрес озадачивает. Вроде должно быть 8 групп 16-ричных значений, почему в ошибке их 7?
4. Viper - 22 Ноября, 2011 - 08:44:08 - перейти к сообщению
Данил_123 смотреть то особо нечего
вот сама функция
PHP:
скопировать код в буфер обмена
  1. function geoip_country_id_by_addr_v6($gi, $addr) {
  2.   $ipnum = inet_pton($addr);
  3.   return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
  4. }


Мелкий пишет:
Как проверить первый коммент

PHP was compiled without --disable-ipv6 option

Адрес взят из примера.
Ну думаю попробую разные адреса.

::1 - fail
::127.0.0.1 - fail
::24.24.24.24 - fail
2001:4860:0:1001::68 - fail
2001:67c:26c:: - fail
2001:67c:3a0:ffff:ffff:ffff:ffff:ffff - fail

Ещё идеи?
5. Мелкий - 22 Ноября, 2011 - 09:09:18 - перейти к сообщению
Проблема явно конфигурации. В песочнице все эти 6 адресов сработали корректно.
А идей нету Огорчение
6. Viper - 22 Ноября, 2011 - 09:16:00 - перейти к сообщению
Мелкий пишет:
Проблема явно конфигурации.
видимо да. Вечером пробну на толковом сервере.

PS! Хм... Есть подозревалка что это из-за того, что винда ХРомоногая и в настройках сети не включена поддержка IPv6.

 

Powered by ExBB FM 1.0 RC1