Я использую простой способ получить реальный ip. Я нашел его здесь: How to get Real IP from Visitor?Хранить IP-адрес в базе данных mysql
IP будет сохранен в базе данных, в некоторой ширине столбца VARCHAR 15. Я использую Varchar длиной 15, потому что я понимаю, что IP-адрес может быть 123.456.789.123, который имеет 12 номеров и 3 точки.
Теперь ... Я видел, что IPv6 имеет больше символов. Я не понимаю. У всех пользователей есть определенный IPv4 или могут быть некоторые пользователи с IPv6, а не IPv4?
Мне нужно понять, потому что я хочу оптимизировать этот столбец IP, как я увидел здесь: insert ip into mysql лучше сделать его десятичным.
Как сделать этот столбец десятичным, если ip (версия 6) может содержать более 15 символов?
Я запутывать ...
Вид побочного вопроса, есть ли простой способ конвертировать [VAR] BINARY (4) в целое число? Я не могу заставить работать CAST/CONVERT, и единственное, что я нашел, это * работа * - это kludge: 'CAST (CONV (HEX (binfield), 16,10) как UNSIGNED)' – Sammitch
@Sammitch: Клюд - это способ сделать это; Я не знаю каких-либо других предоставленных MySQL функций, которые делают преобразование. Функция MySQL ** 'INET_ATON' ** возвращает целое число, поэтому (не тестировалось) вы могли бы использовать **' INET6_NTOA' ** для преобразования 'BINARY (4)' в десятичную строчную нотацию, а затем в целое число. .. ** 'INET_ATON (INET6_NTOA (UNHEX ('C0A80164')))' ** – spencer7593