В БД PostgreSQL у меня есть таблица blocks
, которая импортируется из GeoLite2-City-Blocks.csv со следующей структурой:
network_start_ip cidr NOT NULL,
network_mask_length integer NOT NULL,
geoname_id bigint,
registered_country_geoname_id bigint,
represented_country_geoname_id bigint,
postal_code character(50),
latitude DOUBLE PRECISION,
longitude DOUBLE PRECISION,
is_anonymous_proxy boolean,
is_satellite_provider boolean
для хранения IP-адреса используется тип данных CIDR, НО в GeoLite2-City-Blocks.csv есть только START_IP_ADDRESS и MASK_LENGTH.
пример данных из этой таблицы:
::ffff:1.0.0.0/128 120 2077456 2077456 ....
как я могу выбрать строку, содержащую мой IP-адрес, например 87.197.148.121? необходимо вычислить END_IP_ADDRESS для отдельного столбца?