Найти IP (IPv4 и IPv6) адрес между диапазонами

Вопрос . Можно ли искать значения, которые находятся между (т. е. между, математическими операторами типа «больше» и «меньше»), когда данные хранятся в типе данных VARBINARY?

Проблема: у меня есть список IP-адресов (как IPv4, так и IPv6), где мне нужно определить геолокацию этого IP-адреса, что означает, что мне нужно искать между диапазонами.

Как правило, это может быть достигнуто путем преобразования адреса в целое число, а затем с помощью оператора BETWEEN. Однако с IPv6, фактически превышающим все типы данных, связанные с числовыми, десятичными и целочисленными значениями, начиная с этой публикации, кажется, что мне нужно хранить данные в типе данных VARBINARY.

Я не использовал этот тип данных в прошлом, поэтому я не знаю, как, или если это вообще возможно, искать между значениями. По моим поискам в сети не было просмотров, поэтому я спрашиваю здесь.

Примечание. В настоящее время используется SQL Server 2014, но для этого проекта будет выполнен переход на SQL Server 2017.

4 голоса | спросил J Weezy 19 FebruaryEurope/MoscowbTue, 19 Feb 2019 20:49:38 +0300000000pmTue, 19 Feb 2019 20:49:38 +030019 2019, 20:49:38

1 ответ


0
Ваш подход правильный.Вы можете использовать оператор VARBINARY для сравнения.Вот одобренный ответ в группах MSDN.Но ссылка может быть разорвана в будущем, поэтому я вставляю запрос также ниже.Вопросы о работе с varbinary IPV6 и сравнении шестнадцатеричных значений в диапазоне?Запрос:
ответил Naidu 19 FebruaryEurope/MoscowbTue, 19 Feb 2019 20:59:09 +0300000000pmTue, 19 Feb 2019 20:59:09 +030019 2019, 20:59:09

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132