sql >> Base de Datos >  >> RDS >> Mysql

Compruebe si ipv6 está dentro del rango

Así es como lo tengo funcionando:

  1. Creó otra tabla con las mismas columnas, pero network_start_ip y network_last_ip son VARBINARY(16)
  2. Rellenó esa tabla con esta declaración:INSERT INTO blocks SELECT INET6_ATON(b2.network_start_ip), INET6_ATON(b2.network_last_ip), b2.geoname_id FROM blocks_copy b2;
  3. Luego, para verificar si la dirección IPv6 está dentro del rango, solo necesito ejecutar esta consulta:SELECT geoname_id FROM blocks b WHERE INET6_ATON('2a01:4ff:ffff:ffff::ffff') BETWEEN b.network_start_ip AND b.network_last_ip