У меня есть 2 таблицы cidr
и ip
.
В первом я храню маску сети CIDR. (таблица с 2 столбцами, id_cidr, cidr), вот пример (значения вымышленные):
id_cidr | cidr
---------+----------------
1 | 14.44.182.0/24
---------+----------------
2 | 26.232.49.0/22
Во втором я хочу хранить IP-адреса в каждой сетевой маске cidr (таблица из 3 столбцов, id_ip, cidr_id, ip), вот пример (значения вымышленные):
id_ip | cidr_id | ip
---------+--------------------------
1 | 1 | 14.44.182.0
---------+--------------------------
2 | 1 | 14.44.182.1
---------+--------------------------
3 | 1 | 14.44.182.2
---------+--------------------------
... | 1 | ...
---------+--------------------------
256 | 1 | 14.44.182.255
---------+--------------------------
257 | 2 | 26.232.48.0
---------+--------------------------
258 | 2 | 26.232.48.1
---------+--------------------------
259 | 2 | 26.232.48.2
---------+--------------------------
... | 2 | ...
---------+--------------------------
1280 | 2 | 26.232.51.255
Я хочу добиться следующего: всякий раз, когда я добавляю сетевую маску cidr в cidr table
, я хочу, чтобы мой ip table
автоматически заполнял поля всем диапазоном IP-адресов в этой сетевой маске cidr. Есть ли способ добиться этого в mysql?
Примечание. Чтобы преобразовать сетевую маску cidr в диапазон IP-адресов, нажмите здесь
ip series = 26.232.49.0/22
, будет26.232.48.0
. это ожидается? А также скажите нам, предпочитаете ли вы вызов процедуры для заполнения второй таблицы? - person 1000111   schedule 21.08.2016cidr
2) получить последний идентификатор вставки 3) вызвать процедуру, предоставляющую последний вставленный идентификатор cidr и самcidr
для вставки в таблицуip
- person 1000111   schedule 21.08.2016