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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Преобразование IP-адресов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
dmaw
Отправлено: 16 Ноября, 2011 - 15:50:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Есть у меня списочек IP в двоичном формате (123456789).
Нашёл информацию про некие функции типа inet_ntoa(), но как это использовать ума не приложу.
Пробовал так:

и так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *, inet_ntoa('ip') FROM stats

не работает хоть ты тресни.

Прошу помощи.
 
 Top
EuGen Администратор
Отправлено: 16 Ноября, 2011 - 15:53:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dmaw пишет:
в двоичном формате (123456789).

Указанный Вами формат-десятичный.
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]nction_inet-ntoa
Цитата:
mysql> SELECT INET_NTOA(167773449);
-> '10.0.5.9'

В Вашем случае, к примеру,
CODE (sql):
скопировать код в буфер обмена
  1. SELECT *, inet_ntoa(`ip`) AS string_ip FROM stats


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 17 Ноября, 2011 - 11:41:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Не получается, всё равно возвращает числа без точек.

Получаю массив так:
 
 Top
EuGen Администратор
Отправлено: 17 Ноября, 2011 - 11:43:16
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Укажите весь текст скрипта. И, самое главное, запрос.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 17 Ноября, 2011 - 11:53:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $r = mysql_query("SELECT *, INET_NTOA('addr') AS string_addr FROM stats ORDER BY date", $db) or die ();
  3.  
  4. while($row = mysql_fetch_array($r))
  5. {
  6.     echo $row['addr'].'<br>';
  7. }
  8.  
 
 Top
EuGen Администратор
Отправлено: 17 Ноября, 2011 - 11:55:59
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dmaw пишет:
INET_NTOA('addr')

Ну почему Вы пишете в обычных кавычках,? - ведь в примере, приведенном мной выше, стоят обратные. Используйте обратные. Так, как пишете Вы - это всего лишь строка 'addr' - как она есть. Пишите
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *, INET_NTOA(`addr`) AS string_addr FROM stats ORDER BY date


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 17 Ноября, 2011 - 12:01:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




- не помогло Не понял
 
 Top
EuGen Администратор
Отправлено: 17 Ноября, 2011 - 12:04:01
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Значит, проблема где-то еще. Займитесь отладкой. К примеру, попробуйте выполнить запрос в консоли и посмотрите, какой результат получите.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 17 Ноября, 2011 - 12:16:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Если выполнить чере phpMyAdmin SQL-запрос, то появляется новая колонка INET_NTOA( `addr` ) с нормальными IP.

Может я вывожу их как-то не так или эта строка такая и должна быть?
 
 Top
EuGen Администратор
Отправлено: 17 Ноября, 2011 - 12:18:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ах да, точно. Я не посмотрел. Вы даете альяс string_addr а обращаетесь почему-то к addr. Выводите так
PHP:
скопировать код в буфер обмена
  1.     echo $row['string_addr'].'<br>';


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmaw
Отправлено: 17 Ноября, 2011 - 12:44:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


Помог: 0 раз(а)




Отлично, заработало, спасибо за помощь!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB