Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vérifiez si ipv6 est dans la plage

Voici comment je l'ai fait fonctionner :

  1. Créé une autre table avec les mêmes colonnes, mais network_start_ip et network_last_ip sont VARBINARY(16)
  2. A rempli cette table avec cette instruction :INSERT INTO blocks SELECT INET6_ATON(b2.network_start_ip), INET6_ATON(b2.network_last_ip), b2.geoname_id FROM blocks_copy b2;
  3. Ensuite, pour vérifier si l'adresse IPv6 est dans la plage, j'ai juste besoin d'exécuter cette requête :SELECT geoname_id FROM blocks b WHERE INET6_ATON('2a01:4ff:ffff:ffff::ffff') BETWEEN b.network_start_ip AND b.network_last_ip