Driver86
@Driver86
Немодератор toster.ru

Как хранить IP в MySQL и производить поиск?

Сначала думал использовать функции вида INET_ATON (или их аналоги в php) и, соответственно, хранить ip как число, но возник вопрос: а как тогда производить поиск? Например, вводим "150.72", то хотелось бы найти "150.72.11.22", "150.72.150.89" и т.п.
Хранить как char и использовать like?
  • Вопрос задан
  • 1673 просмотра
Решения вопроса 1
DevMan
@DevMan
SELECT INET_ATON('150.72.11.22'); -> 2521303830
SELECT INET_NTOA(2521303830); -> 150.72.11.22
-- select IP range
SELECT
    INET_NTOA(ip)
FROM
    tableName
WHERE
    ip BETWEEN INET_ATON('150.72.0.0') AND INET_ATON('150.72.255.255');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
begemot_sun
@begemot_sun
Программист в душе.
Храните как число. При поиске вычисляете диапазон в котором нужен Вам ответ.

IP - это число, просто в целях отображения и понимания его записывают в виде 4 чисел.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы