commande Ipstring ne me retourne pas une ip correcte.

Archive.
Xain
Messages : 7
Inscription : lun. 24/avr./2006 14:11
Localisation : Andolsheim

commande Ipstring ne me retourne pas une ip correcte.

Message par Xain »

Bonjour.

je developpe actuellement un outil en client serveur qui me permet de surveiller les process qui tournent sur nos machines

Le site se compose de 5 usines, reliées par VPN Orange.

Si le programme client se trouve sur le meme site que le serveur (interface), le client recupere correctement l'ip de l'interface et renvoie les infos demandées.

par contre, si le client est sur un autre site, celui ci me detecte une ip fausse. de ce fait, il ne peux renvoyer les infos.

exemple :
interface sur 192.168.20.98, client sur 192.168.20.150 (meme site),
quand l'interface interroge le client, celui voit l'ip 192.168.20.98. l'echange d'infos a bien lieu

interface sur 192.168.20.98, client sur 192.168.0.215 (autre site),
quand l'interface interroge le client, celui voit l'ip 192.168.5.253. le programme client ne renvoie pas l'info a l'interface (normal).

la partie du code ou se trouve le probleme :

Code : Tout sélectionner

 SEvent = NetworkServerEvent()
      
      If SEvent
        
        ClientID = EventClient()
        ip.s=IPString(GetClientIP(ClientID)); => c la que ca coince
        destination=ip
        Select SEvent
          
          Case 1 ;-Client connecté
            PrintN("Client connecté : "+ip) 
            ...
            ...
quelqu'un aurait il une idée ?

en vous remerciant par avance.[/code]
Anonyme

Message par Anonyme »

destination = ip , "destination" est elle une variable de type .s ?
Xain
Messages : 7
Inscription : lun. 24/avr./2006 14:11
Localisation : Andolsheim

Message par Xain »

Bonjour.

tout d'abord je m'excuse de répondre aussi tardivement.
destination est bien une variable de type string.

le probleme ne se pose que lorsque le client est sur un site distant. l'ip affichée est correcte si elle se trouve sur le meme réseau que le programme "serveur"

merci.
Anonyme

Message par Anonyme »

A prioris cette commande renvois des ip "locales" essaye de voir se post (dernier code)

http://www.purebasic.fr/french/viewtopi ... ghlight=ip

la technique consiste à ouvrir une page html contenant un ip, ensuite il faut parser la page html pour avoir l'ip, c'est comme ca que je faisait lorsque je faisait mumuse avec le reseau :wink:
Avatar de l’utilisateur
Thyphoon
Messages : 2697
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

je crois bien qu'il y a un bug
regardez ce code:
chez moi dans la fenêtre Debug il y a bien le bon Ip alors que dans le Listview gadget et bien j'ai 0.0.0.0

Code : Tout sélectionner

#Window_Main=0
#ListGadget=0
InitNetwork()

Procedure PutInLog(txt.s)
  AddGadgetItem(#ListGadget, -1, "Serveur "+IPString(Ip))
EndProcedure

Procedure FindIP()
  ExamineIPAddresses()
  Repeat
    Ip=NextIPAddress()
    If Ip<>0
    Debug IPString(Ip)
    PutInLog("Serveur "+IPString(Ip))
    EndIf
  Until Ip=0
EndProcedure



If OpenWindow(#Window_Main,640,0,640,480,"Serveur")
  If CreateGadgetList(WindowID(#Window_Main))
    ListViewGadget(#ListGadget, 0, 20, 640, 460) 
  EndIf
  FindIP()
  Repeat
    Event = WindowEvent()

    Delay(1)
  Until Event = #PB_Event_CloseWindow
EndIf
c'est moi ou ça deconne bien ?
Anonyme

Message par Anonyme »

c'est toi :D
Procedure PutInLog(txt.s)
AddGadgetItem(#ListGadget, -1, "Serveur "+IPString(Ip))
EndProcedure

Code : Tout sélectionner

Procedure PutInLog(txt.s)
  AddGadgetItem(#ListGadget, -1, txt)
EndProcedure 
:wink:
Avatar de l’utilisateur
Thyphoon
Messages : 2697
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Waaaaaaaaaaaaa grave le mec ...lollllll j'ai rien nit
Répondre