Affiche mon IP - (Local et Publique)

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Affiche mon IP - (Local et Publique)

Message par falsam »

Portable (pas d'installation), Affiche mon IP affichera vôtre IP local et publique.

Image

Téléchargement : Affiche mon IP V1.20 (Binaire 41 ko)
Dernière modification par falsam le mer. 19/mars/2014 10:10, modifié 4 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par falsam »

Petite mise à jour
- Ajout du nom de la carte réseau en cours d'utilisation
- Ajout du type d'adresse IP : DHCP ou Static
- Ajoute du bail de l'adresse IP.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Affiche mon IP - (Local et Publique)

Message par Backup »

un source ;)

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #String_0
  #Button_0
EndEnumeration

Procedure.s OpenURL(Url.s, OpenType.b)
  isLoop.b = 1
  INET_RELOAD.l = $80000000
  hInet.l = 0 : hURL.l = 0 : Bytes.l = 0
  Buffer.s = Space(2048)
  
  hInet = InternetOpen_("PB@INET", OpenType, #Null, #Null, 0)
  hURL = InternetOpenUrl_(hInet, Url, #Null, 0, INET_RELOAD, 0)
  
  Repeat
    
    Delay(1)
    InternetReadFile_(hURL, @Buffer, Len(Buffer), @Bytes)
    If Bytes = 0
      isLoop = 0
    Else
      res.s = res + Left(Buffer, Bytes)
    EndIf
  Until isLoop = 0
  InternetCloseHandle_(hURL)
  InternetCloseHandle_(hInet)
  ProcedureReturn res
EndProcedure
HTML.s = OpenURL("http://www.monip.org/", 1)
debut.l = FindString(HTML, "<BR>IP : ", 1) + 9
fin.l = FindString(HTML, "<br>", 1)
ip.s = Mid(HTML, debut, (fin - debut))

If OpenWindow(#Window_0, 0, 0, 205, 70, "IP Public", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
  SetWindowColor(#Window_0, RGB(0, 0, 0))
  
  TextGadget(#String_0, 10, 10, 185, 20, "" + ip.s, #PB_Text_Center)
  SetGadgetColor(#String_0, #PB_Gadget_BackColor, RGB(0, 0, 0))
  SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(255, 255, 255))
  
  HyperLinkGadget(#Button_0, 5, 40, 200, 20, " cliquez pour copier dans le presse papier", RGB(255, 0, 0))
  SetGadgetColor(#Button_0, #PB_Gadget_BackColor, RGB(0, 0, 0))
  SetGadgetColor(#Button_0, #PB_Gadget_FrontColor, RGB(255, 255, 255))
  
EndIf

Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_Gadget
    Select EventGadget()
        
      Case #Button_0
        SetClipboardText(ip.s)
        End
        
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow


ou plus court : :lol:

Code : Tout sélectionner

debug RunProgram("http://monip.net/")

quelques infos sur la carte reseau ( Ar-s pour completer ton prg ;) )

Code : Tout sélectionner


prg=RunProgram("cmd.exe", "?/c ipconfig /all", "", #PB_Program_Open|#PB_Program_Read)

If prg
  While ProgramRunning(prg)
    Debug ReadProgramString(prg)
  Wend
EndIf
CloseProgram(prg)

de nituvius

Code : Tout sélectionner


InitNetwork()
UserIPViewer$="http://h3x0r.ath.cx/Sonstiges/ShowMyIp12.php"
UserIP$ = StringField(GetHTTPHeader(UserIPViewer$), 2, Chr(34))
Debug UserIP$ 

:)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par Ar-S »

Joli Falsam.
Du coup tu es passé par WMI ou par le registre ? (ou par ipconfig ?) pour choper les infos ?


Code : Tout sélectionner


InitNetwork()
UserIPViewer$="http://h3x0r.ath.cx/Sonstiges/ShowMyIp12.php"
UserIP$ = StringField(GetHTTPHeader(UserIPViewer$), 2, Chr(34))
Debug UserIP$ 
J'avais paumé celui là je le recherchais depuis des plombes !
En revanche je veux bien une explication de comment il a généré l'IP dans son Header. Si vous le savez je veux bien que vous partagiez votre science. :wink:
~~~~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
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par falsam »

Ar-S a écrit :Joli Falsam. Du coup tu es passé par WMI ou par le registre ? (ou par ipconfig ?) pour choper les infos ?
La détection de la carte réseau en cours d'utilisation, le type d'adresse IP DHCP ou Static et le bail de l'adresse IP sont gérés par les fonctionnalités WMI.

L'adresse IP public est capturé avec l'include GetIp.pbi
http://www.purebasic.fr/french/viewtopi ... =6&t=13085
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par Ar-S »

falsam a écrit : L'adresse IP public est capturé avec l'include GetIp.pbi
http://www.purebasic.fr/french/viewtopi ... =6&t=13085
Ok merci ;)
N'oublie pas d'effacer le fichier index.php après récupération de l'IP dans ton GetIp.pbi
~~~~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
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par falsam »

Ar-S a écrit :N'oublie pas d'effacer le fichier index.php après récupération de l'IP dans ton GetIp.pbi
Ooops ! C'est une bonne idée :mrgreen:

Je sais que tu ne souhaites pas intégrer COMatePLUS.pbi. Je laisse quand meme le code propre à la détection de la carte réseau.

Code : Tout sélectionner

;Information system : Carte Reseau
XIncludeFile "COMatePLUS.pbi"

Define.COMateObject objWMIService, Adapter
  
Global Result.COMateEnumObject 
Global strComputer.s = "." 

objWMIService = COMate_GetObject("winmgmts:\\" + strComputer + "\root\cimv2", "") 
If objWMIService 
  Result = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE')")
  If Result
    
    Adapter = Result\GetNextObject() 
    While Adapter
      Description$ = Adapter\GetStringProperty("Description")
      Index.i = Adapter\GetIntegerProperty("InterfaceIndex")
      Device_Index.i = Adapter\GetIntegerProperty("Index")
      DhcpServer$ = Adapter\GetStringProperty("DHCPServer")
      DomainName$ = Adapter\GetStringProperty("DNSDomain")
      HostName$ = Adapter\GetStringProperty("DNSHostName")
      LeaseObt$ = Adapter\GetStringProperty("DHCPLeaseObtained")
      LeaseExp$ = Adapter\GetStringProperty("DHCPLeaseExpires")
        
      LeaseObtDate$ = Mid(LeaseObt$,7,2)+"/"+Mid(LeaseObt$,5,2)+"/"+Left(LeaseObt$, 4)
      LeaseObtTime$ = Mid(LeaseObt$, 9,2)+":"+Mid(LeaseObt$, 11,2)+":"+Mid(LeaseObt$, 13,2)
    
      LeaseExpDate$ = Mid(LeaseExp$,7,2)+"/"+Mid(LeaseExp$,5,2)+"/"+Left(LeaseExp$, 4)
      LeaseExpTime$ = Mid(LeaseExp$, 9,2)+":"+Mid(LeaseExp$, 11,2)+":"+Mid(LeaseExp$, 13,2)
      TcpipNetbios_Options.i = Adapter\GetIntegerProperty("TcpipNetbiosOptions")
    
      If TcpipNetbios_Options = 0
        NetbiosOpt$ = "Netbios Enabled via Dhcp"
      EndIf
      If TcpipNetbios_Options = 1
        NetbiosOpt$ = "Netbios Enabled"
      EndIf
      If TcpipNetbios_Options = 2
        NetbiosOpt$ = "Netbios Disabled"
      EndIf
      If Adapter\GetIntegerProperty("DNSEnabledForWINSResolution") = -1
        HaveWins$ = "True"  
      Else
        HaveWins$ = "False"   
      EndIf
      If Adapter\GetIntegerProperty("IPFilterSecurityEnabled") = -1
        IP_Filter_Security$ = "True"  
      Else
        IP_Filter_Security$ = "False"  
      EndIf
      If Adapter\GetIntegerProperty("DHCPEnabled") = -1
        DHCP_Static$ = "IP is DHCP"  
      Else
        DHCP_Static$ = "IP is Static"  
      EndIf
      If Adapter\GetIntegerProperty("FullDNSRegistrationEnabled") = -1
        FullDNS_Reg$ = "True"  
      Else
        FullDNS_Reg$ = "False"  
      EndIf
      If Adapter\GetIntegerProperty("IPEnabled") = -1
        IP_Enabled$ = "True"  
      Else
       IP_Enabled$ = "False"  
      EndIf

      Adapter_Type$ = Str(Device_Index)
            
      Debug "Current in use Adapter " + Description$
      Debug "Adapter Route Table Index " + Str(Index)
      Debug "Adapter System Index (LUID) " + Str(Device_Index)
      Debug "TCP/IP Enabled on Adapter " + IP_Enabled$
      Debug "IP Filter Security Enabled " + IP_Filter_Security$
      Debug "DHCP or Static " + DHCP_Static$
      Debug "Lease Obtained " + LeaseObtDate$ + " - " + LeaseObtTime$
      Debug "Lease Expires " + LeaseExpDate$ + " - " + LeaseExpTime$
      Debug "Domain name " + DomainName$
      Debug "Host Name " + HostName$ ;Hostname() 
      Debug "Netbios " + NetbiosOpt$
      Debug " "
          
      Adapter\Release() 
      Adapter = Result\GetNextObject()    
    Wend
  
    Result\Release()   
  EndIf
  objWMIService\Release()
  
Else
  MessageRequester("Error", "WMI")
EndIf
Fil de discutions Comate Plus : http://www.purebasic.fr/english/viewtop ... lit=comate
Site de l'auteur (Srod) et téléchargement http://www.nxsoftware.com/

Certaines démo WMI sont inclus dans le fichier zip. Je peux poster des exemples complémentaires que j'utilise dans un autre post si vous le souhaitez.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par Ar-S »

Merci,
En fait ce que je trouve pas dans le Win32_NetworkAdapter, c'est l'info permettant de trouver quelle est LA carte réseau active (bénéficiant de la connexion internet) sans avoir à tout lister et trier.
(Toujours hors COMatePlus)
~~~~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 : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par Ar-S »

En attendant, voilà ma version via l'ipconfig

Code : Tout sélectionner


Procedure.s GetIPconfig()
  ;Extracteur d'IP Passerelle par Ar-S // Sept 2012
  ;IPCONFIG et les expressions régulières

  Shared Passerelle.s, Ip.s
   
  ; L'Expression régulière
  expr$ =   "(([0-9]{1,3}.){3}[0-9]{1,3})"
  ; Explications du regex
  ; ([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.
  CreateRegularExpression(0,expr$)
  Dim DHCP$(0)
  Dim ip$(0)
  
  Zboub = 0
  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, "Passerelle") And ExtractRegularExpression(0, Ligne , DHCP$()) > 0
        Passerelle = "Passerelle : " + DHCP$(0)
        Zboub +1
        
      ElseIf FindString( Ligne, "Adresse IPv4") And ExtractRegularExpression(0, Ligne , ip$())> 0
        Ip = "IP : " + ip$(0)
        Zboub +1
      
      EndIf
       
      If Zboub = 2
        KillProgram(program)
      EndIf

  EndIf
Wend 
FreeRegularExpression(0)

EndProcedure
  
GetIPconfig()
Debug Ip  
Debug Passerelle
~~~~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
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Affiche mon IP - (Local et Publique)

Message par falsam »

Ar-S a écrit :En fait ce que je trouve pas dans le Win32_NetworkAdapter, c'est l'info permettant de trouver quelle est LA carte réseau active (bénéficiant de la connexion internet) sans avoir à tout lister et trier.
Hors Comate plus :p il faut que tu exécutes une requete sélectionnant les cartes réseaux ayant une activité IP

Code : Tout sélectionner

Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE
La classe Win32_NetworkAdapterConfiguration est décrite sur ce lien
Tu peux récupérer Description (String) ainsi que DHCPLeaseObtained (Datetime)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre