Requête sur une liste d'adresse ip [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 08-12-2017 à 17:19:39
Je dirais :
select * from systems where network(networkaddress) = network(inet('172.16.128.0/24'))
Edit : cela dit, je ne sais pas où t'as trouvé les fonctions network() et inet()
Je la vois pas sur https://dev.mysql.com/doc/refman/5. [...] tions.html
Cependant, pour inet() tu devrais trouver ton bonheur avec INET_ATON(). A noter que pour avoir le sous-réseau, il doit y avoir moyen d'appliquer la définition en faisant un AND (cf https://fr.wikipedia.org/wiki/Sous- [...] %C3%A9seau )
Marsh Posté le 08-12-2017 à 19:44:32
Tapé trop vite avant de partir du boulot
Evidemment je fais ma requête dans la table systems
Les fonctions network() et inet() sont dispo en postgresql
https://www.postgresql.org/docs/9.4 [...] s-net.html
Marsh Posté le 08-12-2017 à 20:31:02
Désolé, j'avais cru que tu étais en Mysql. Cela dit, appliquer la déf/algo du masque de sous-réseau dans ta requête avec un AND reste valable
Edit : je parle du AND entre 2 entiers et non de l'opérateur logique entre 2 conditions même si en logique booléenne, ça revient au même.
Marsh Posté le 11-12-2017 à 16:48:05
C'est un peu ce que j'avais trouvé comme solution en premier lieu.
Mais en fait, on peut faire largement plus simple avec les fonctions pgsql:
Code :
|
C'est propre et facile à générer en C. Ca me va bien comme solution
Marsh Posté le 08-12-2017 à 17:13:51
Je manipule à travers un soft en C++ une base contenant un ensemble de machine. Je cherche à récupérer un fragment de la table en filtrant les machines suivant le sous-réseau auxquels elles appartiennent.
Pour l'instant, je contourne le problème en récupérant toute la liste et en la filtrant coté c++. Ca marche, mais ca m'impose d'avoir un modèle intermédiaire que sert de proxy entre la base de donnée et le reste du soft.
Je me suis dis qu'on devait pouvoir faire plus malin, et je suis arrivé à çà :
Est-ce qu'on peut faire encore plus malin en passant par la macro network?
Du genre:
mais sans erreur de syntaxe
---------------
Il vaut parfois mieux allumer un lance-flamme que maudire l'obscurité. (Pratchett) // Eurosataniste convaincu.