Я нахожусь в базе данных postgresql 8.3. Я пытаюсь выяснить, где ошибка в запросе ниже. Я пытаюсь создать запрос только для выбора source_ips и destination_ips, которые являются частными адресами.SQL-запрос, выбирающий общедоступный IP-адрес
По какой-либо причине один из адресов, который берется в следующем запросе, является адресом 208.117.252.39, который не является частным адресом.
Есть ли что-то не так с логикой в нижеследующем запросе, чтобы заставить его выбирать общедоступные IP-адреса?
select source_ip, destination_ip
from ip_table
where
(
inet '10/8' >> source_ip
or inet '192.168/16' >> source_ip
or source_ip >= inet '172.16/16' and source_ip < inet '172.32/16'
)
and inet '10/8' >> destination_ip
or inet '192.168/16' >> destination_ip
Это то же самое, если вы меняете> = к >> и < to >>? –
Для большей ясности попробуйте заменить «source_ip> = inet '172.16/16' и source_ip> source_ip". Этот частный диапазон представлен как/12 CIDR, и его не нужно обрабатывать специально. –
hoxworth