|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
Bonjour,
Je fais une requête pour trouver la localisation d'une adresse ip. Je n'ai aucun problème avec cette requête : par exemple ip : 82.236.253.111 Code :
SELECT geoip_country FROM geoip WHERE (16777216*82 + 65536*236 + 256*253 + 111) BETWEEN geoip_begin_num AND geoip_end_num Aujourd'hui je ne sais pas comme outrepasser ce message d'erreur et surtout faire en sorte que cela ne stoppe pas ma procédure stockée. j'aimerai gérer ce message d'erreur et mettre une valeur spécifique dans ma colonne ip_pays dans le cas où la localisation n'aboutit pas. merci de m'expliquer si vous le pouvez comment gérer cela merci à tous ! |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
Plutôt que de passer par un entier, pourquoi ne pas avoir utilisé les types réseau de PostgreSQL, notamment inet ? Voir http://www.postgresql.org/docs/8.2/i...net-types.html pour les détails sur les types et http://www.postgresql.org/docs/8.2/s...tions-net.html pour les fonctions.
Quant à ta question originelle, regarde du côté des exceptions : http://www.postgresql.org/docs/8.2/s...ERROR-TRAPPING Ça te permet de récupérer l'erreur et de faire un autre traitement à la place. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 635 ![]() |
j'utilise la base de donnée geoip et leur formule de geolocalisation
ipnum = 16777216*w + 65536*x + 256*y + z ou IP Address = w.x.y.z que m'apporterait l'utilisation d'inet ? Cordialement |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
de ne pas t'embêter à faire le calcul vers integer (ou plutôt int8), de pouvoir calculer rapidement réseaux, sous-réseaux, etc.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com