récupérer les IP via IPconfig et PB

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

récupérer les IP via IPconfig et PB

Message par Ar-S »

Voilà la v3 de ma proce pour écouter "ipconfig" et récolter les infos
On peut ainsi voir l'utilisation de ProgramRunning(program), AvailableProgramOutput(program)
et ce qui touche à l'écoute de programmes externes. (ipconfig dans ce cas)

Code : Tout sélectionner

  
  Procedure.s MessageRequesterIP(ARS_optionIP=0)
    ; by Ar-S / Sept 2012
    ; Récupération de ma config réseau via IpConfig
    ; ARS_optionIP est facultatif.
    ; 0 est l'équivalent des infos retournées par ipconfig
    ; 1 est l'équivalent des infos retournées par ipconfig /all
    
    Protected.s New,Ligne,Tout
    
    If ARS_optionIP < 0 Or ARS_optionIP > 1
      option$ = ""
    EndIf
    If ARS_optionIP = 1
      option$ = "/all"
    EndIf
    
    Tout.s = ""
    program = RunProgram("ipconfig",option$,"",#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
    While ProgramRunning(program)
      If AvailableProgramOutput(program)
        
        Ligne.s =  ReadProgramString(program) +Chr(10)

        If Ligne <> "" And Ligne <> ":" And Ligne <> Chr(10)
          Ligne = Trim (Ligne, Chr(10)) ; retour à la ligne
          Ligne = Trim (Ligne, Chr(58)) ; les 2 points ":"
          
          NbrCar = Len(Ligne)
          DernierCar.s = Mid(Ligne,Len(Ligne)-1,1)
          If DernierCar = Chr(58)
            Ligne + "[Rien]"
          EndIf
          
          Ligne + Chr(10)
          Tout = Tout + Ligne
          
          ; Fitrage des derniers caractères parasites
          New.s = RemoveString(Tout,"ÿ")
          New.s = RemoveString(New,"…")
          New.s = ReplaceString(New,"‚","é")
          New.s = ReplaceString(New,"::",": [Rien]")
          New.s = ReplaceString(New,"“","ô")
        EndIf
      EndIf
    Wend 
    MessageRequester("Resultat IP Config", New,0)
    
  EndProcedure
  
  MessageRequesterIP() ; => ipconfig 
  MessageRequesterIP(1) ; => ipconfig /all


Dernière modification par Ar-S le mar. 05/nov./2013 15:55, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Récupérer les IP via ipconfig

Message par Ar-S »

2eme méthode
Les regex.

Code : Tout sélectionner

;Extracteur d'IPpar Ar-S // Sept 2012
;IPCONFIG et les expressions régulières
;NOV 2013
; Filtrage des IP du reseau

Procedure.s GetIP()
; Ar-S

  Shared BilanIP.s
  
    ; L'Expression régulière
    expr$ =   "(([0-9]{1,3}.){3}[0-9]{1,3})"
  ; Explication
  ; ([0-9]{1,3}.){3} signifie qu'il faut qu'il y ait 3 séries 1 à 3 chiffres de 0 à 9 suivi d'un point. 
  ; [0-9]{1,3} suivi d'une dernière série de 1 à 3 chiffres mais sans le point.
  
  exprT$ =   "([A-Za-z]{5,20} )"
     ; Explication
  ; ([A-Za-z]{1,3}.){3} signifie qu'il faut qu'il y ait 3 séries 1 à 3 chiffres de 0 à 9 suivi d'un point. 
  ; [0-9]{1,3} suivi d'une dernière série de 1 à 3 chiffres mais sans le point.
  
   CreateRegularExpression(0,expr$)
   CreateRegularExpression(1,exprT$)
   
   
  Dim result$(0) 
  Dim resultT$(0) 
  
  Contenu.s = ""
  BilanIP.s = ""
  
  program = RunProgram("ipconfig","/all","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
  While ProgramRunning(program)
    If AvailableProgramOutput(program)
      
      Ligne.s = ReadProgramString(program)
      If FindString( Ligne, "192")
        
        Contenu + Ligne + Chr(10)

      EndIf

    EndIf
  Wend 
  
    NbrTrouve = ExtractRegularExpression(0, Contenu , result$()) ;Extrait les ip dans result()
    ReDim result$(NbrTrouve)
    
    NbrTrouveT = ExtractRegularExpression(1, contenu , resultT$()) ;Extrait les titres dans resultT()
    ReDim resultT$(NbrTrouve)    
        
        
  For i = 0 To NbrTrouve-1
    Titre.s = resultT$(i)
    If LCase( Left(Titre.s,7) ) = "adresse"
        titre = "IP reseau"
        titre + " " + Str(i+1)
     ElseIf   LCase( Left(Titre.s,10) ) = "passerelle"
        titre = "IP Passerelle (routeur/box) : "
    EndIf       
    Passerelle.s = result$(i)
        
    BilanIP + Titre + " : " + Passerelle + Chr(10)
    
  Next
  
  FreeRegularExpression(0)
  FreeRegularExpression(1)
  
  ProcedureReturn BilanIP
EndProcedure

Debug GetIP()
Cette méthode donne moins de détails mais permet de récupérer seulement les IP si besoin.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: récupérer les IP via IPconfig et PB

Message par venom »

Chez moi, le 1er code me renvoie 2 MessageRequester tout en chinois :lol:

Et l'autre le debug est vide






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: récupérer les IP via IPconfig et PB

Message par Ar-S »

venom a écrit :Chez moi, le 1er code me renvoie 2 MessageRequester tout en chinois :lol:

Et l'autre le debug est vide
@++
Tu les as compilé en PB x64, sinon essaye ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer les IP via IPconfig et PB

Message par Backup »

sujet maintes fois abordé .....
notamment ici ...
http://www.purebasic.fr/french/viewtopi ... g%2F+%2C+1+

mais pas seulement ...

tu es en plein Alzheimer Ar-s ?? :)
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: récupérer les IP via IPconfig et PB

Message par venom »

Idem en x64 ou x86 :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: récupérer les IP via IPconfig et PB

Message par Ar-S »

venom a écrit :Idem en x64 ou x86 :wink:
@++
T'as un windows chinois ou bien ?!
tu aurais pas coché gestion de l'unicode dans les options de compilation ? si oui décoche le.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: récupérer les IP via IPconfig et PB

Message par venom »

C'est tout de suite un peut plus compréhensible :D
La case était coché mais c'est pas moi j'te le jure :oops: :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: récupérer les IP via IPconfig et PB

Message par GallyHC »

Bonjour tous,

En gros ce que je comprend de cela, c'est qu'il n'est pas possible d'avoir les informations en clair (sans bibouille, je veux dire) avec "RunProgram()" si on compile en unicode.... Je trouve cela fort dommage personnelement.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: récupérer les IP via IPconfig et PB

Message par Ar-S »

Je préfère ça ! tu m'as fait stressé.

+1 gally
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre