J'ai une configuration de table MySQL comme suit:Correspondance d'une adresse IP avec une plage IP?
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| ipaddress_s | varchar(15) | YES | MUL | NULL | |
| ipaddress_e | varchar(16) | YES | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
où, ipaddress_s et ipaddress_e ressembler à: 4.100.159.0-4.100.159.255
Maintenant, est-il un moyen que je peux réellement obtenir la ligne qui contient une adresse IP donnée? Par exemple, étant donné l'adresse IP: "4.100.159.5", je veux que la ligne ci-dessus soit retournée. J'essaie donc d'une requête qui ressemble à quelque chose comme ça (mais bien sûr, cela est faux parce que dans ce qui suit je considérais les adresses IP sous forme de chaînes):
SELECT * FROM ranges WHERE ipaddress_s<"4.100.159.5" AND ipaddress_e>"4.100.159.5"
Toutes les suggestions?
Merci! Je ne savais même pas que ces fonctions existaient! – Legend
Oui ... si les performances sont un problème, vous pouvez stocker les adresses dans la base de données comme des entiers en premier lieu. – WhirlWind
Ouais .. En train de déposer cette table et en créer une nouvelle :) – Legend