sql >> Databasteknik >  >> RDS >> Mysql

Kontrollera om ipv6 är inom intervallet

Så här har jag fått det att fungera:

  1. Skapade en annan tabell med samma kolumner, men network_start_ip och network_last_ip är VARBINARY(16)
  2. Pulerade tabellen med denna sats:INSERT INTO blocks SELECT INET6_ATON(b2.network_start_ip), INET6_ATON(b2.network_last_ip), b2.geoname_id FROM blocks_copy b2;
  3. Sedan, för att kontrollera om IPv6-adressen är inom intervallet, behöver jag bara köra den här frågan:SELECT geoname_id FROM blocks b WHERE INET6_ATON('2a01:4ff:ffff:ffff::ffff') BETWEEN b.network_start_ip AND b.network_last_ip


  1. INFOGA I ... VÄLJ FRÅN ... PÅ DUPLIKATNYCKELUPPDATERING

  2. MySQL Socket vägrar anslutning efter tusentals på varandra följande anslutningar

  3. Hur väljer man över två tabeller?

  4. Motsvarande funktion för DATEADD() i Oracle