OVH Cloud OVH Cloud

[WD10] adresse ip

13 réponses
Avatar
jacques trepp
bonjour,

je teste le nombre d'accès simultanés à une appli en gérant une table
nommée 'postes', dans laquelle je stocke l'adresse ip du poste qui se
connecte, jusqu'à la déconnexion. En cas de coupure brutale, je cherche
l'adresse ip du poste qui se connecte, et je l'efface pour ensuite la
ré-enregistrer. Un simple count(*) me permet de savoir si je dépasse ou
pas le nombre maxi d'utilisateurs que j'ai paramétré lors de
l'installation.
le problème est que la commande NetAdresseIP() me renvoie 169.254.2.2
si j'utilise des indices, j'obtiens :
NetAdresseIP(0) = 169.254.2.2
NetAdresseIP(1) = 192.168.220.25 (mon adresse normale)
la première adresse semble automatique (apipa, je crois), mais je ne
veux pas utiliser l'indice 1 car je ne sais pas d'avance si la première
adresse sera présente quelle que soit la configuration du réseau
(serveur de domaine, chez nous) très variable d'un client à l'autre.
Si vous avez une suggestion, je suis preneur

merci



Voici le code :

nbpst est un entier

// recherche de l'adresse ip après un arrêt brutal de l'appli

g_requete = "select count(*) from postes where adresse_ip = " +
MySql4:mysqlquotestring(NetAdresseIP())
g_num_requete = 1
SI Execute_Requete() ALORS
SI MySql4:mysqlfetch(g_num_requete) ALORS
nbpst =MySql4:MysqlLitCol(g_num_requete,1)
SI nbpst >= 1 ALORS
g_requete = "delete from postes where adresse_ip='"+NetAdresseIP()+"'"
g_num_requete = 1
Execute_Requete(Faux)
FIN
FIN
FIN

// enregistrement de l'adresse ip
g_retour = PS:SQLLitRecherche("adresse_ip =
"+MySql4:mysqlquotestring(NetAdresseIP()))
SI PAS g_retour ALORS
PS:m_ADRESSE_IP = NetAdresseIP()
SI PAS PS:SQLInsert() ALORS
Affiche_Erreur(PS)
FIN
FIN

// vérification de la limete d'utilisation
g_requete = "select count(*) from postes"
g_num_requete = 1
SI Execute_Requete() ALORS
SI MySql4:mysqlfetch(g_num_requete) ALORS
nbpst = MySql4:MysqlLitCol(g_num_requete,1)
SI nbpst > gLimite_Postes ALORS
Info("Le nombre d'utilisateurs simultanés est de
"+gLimite_Postes+"."+RC+"Vous devez déconnecter un autre poste pour
pouvoir utiliser le logiciel.")
FinProgramme()
FIN
FIN
FIN




--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de spam.trepp@free.fr
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com

3 réponses

1 2
Avatar
jacques trepp
Daniel a écrit :


Je viens de tester sur Linux, sur un postgresql 8.1 j'ai bien la vue,
et donc pas de souci pour avoir les infos.

A la limite, si elle n'existe pas sur ta version tu la crées, en
récupérant le code SQL de la vue dans la version qui fonctionne, ou,
encore mieux tu te fais ta propre vue pg_stat_retraite ;-)



j'ai également la vue, mais si je demande 'afficher les données', la
table fait bien état des noms de colonnes, mais je n'ai aucune données.
Je teste à partir du pgadmin installé sur ma machine de dev, sur
laquelle tourne un serveur postgresql local. j'ai donc 2 connexions :

postgresql database server 8.1 (localhost:5432)
redgat (serveur-trepp:5432)
j'obtiens les données de la base locale, mais pas de la base sous linux.

j'ai comparé les 2 postgresql.conf, et mis en phase les 2 config : c'est
pareil.
Bon, ça n'est pas un drame, mais c'est pénible. J'ajoute que les droits
sont standard (c'est à dire que je me connecte uniquement avec postgres,
qui est le proprio de tout le bouzin)

encore une bizarrerie
Peux-tu me dire quels sont les droits sur cette vue ?
les miens sont :
ALTER TABLE pg_stat_activity OWNER TO postgres;
GRANT SELECT ON TABLE pg_stat_activity TO public;
sur les 2 serveurs.

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Avatar
Daniel
jacques trepp writes:

Daniel a écrit :

> Je viens de tester sur Linux, sur un postgresql 8.1 j'ai bien la
>vue, et donc pas de souci pour avoir les infos. A la limite, si elle
>n'existe pas sur ta version tu la crées, en récupérant le code SQL de
>la vue dans la version qui fonctionne, ou, encore mieux tu te fais ta
>propre vue pg_stat_retraite ;-)

j'ai également la vue, mais si je demande 'afficher les données', la
table fait bien état des noms de colonnes, mais je n'ai aucune
données. Je teste à partir du pgadmin installé sur ma machine de de v,
sur laquelle tourne un serveur postgresql local. j'ai donc 2
connexions :

postgresql database server 8.1 (localhost:5432) redgat
(serveur-trepp:5432) j'obtiens les données de la base locale, mais pas
de la base sous linux.

j'ai comparé les 2 postgresql.conf, et mis en phase les 2 config :
c'est pareil. Bon, ça n'est pas un drame, mais c'est
pénible. J'ajoute que les droits sont standard (c'est à dire que je me
connecte uniquement avec postgres, qui est le proprio de tout le
bouzin)



encore une bizarrerie Peux-tu me dire quels sont les droits sur cette
vue ? les miens sont : ALTER TABLE pg_stat_activity OWNER TO
postgres; GRANT SELECT ON TABLE pg_stat_activity TO public; sur les 2
serveurs.



Idem que toi, pour les droits.
C'est peut être au moment du lancement de postgresql sous linux que tu
déclares un truc spécifique qui prend la main sur postgresql.conf ou
alors tu as compilé ton POstgresql sous Linux de façon spécifique.


Pose la question sur un groupe spécifique à Postgresql histoire
d'avoir la réponse, car c'est un peu problématique.

Le lien de la config des stats:
http://docs.postgresqlfr.org/8.1/monitoring-stats.html

@+

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com



--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
jacques trepp
Daniel a écrit :

Le lien de la config des stats:
http://docs.postgresqlfr.org/8.1/monitoring-stats.html



merci pour le lien. J'ai en effet coché à peu près tout, et ça ne
change rien. D'autant plus bizarre que l'affichage des données de
pg_database me donne bien des données.
encore une histoire de fous.
j'ai posté sur le forum postgresql.fr
on va bien voir.

je n'ai rien touché à la distribution quand j'ai compilé. Les seules
modifs concernent listen_addresses = '*'
et le paramétrage de pg_hba

merci encore


--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
1 2