Bonjour. Bonne et heureuse année à vous,
Auriez vous une portion de code ou une commande qui indique l'adresse IP de l'ordinateur sur lequel est exécuté le programme.
Merci.
Récuperer l'adresse IP de l'ordinateur.
Re: Récuperer l'adresse IP de l'ordinateur.
Bonjour,
Bonne Année.
Une machine peut avoir plusieurs carte et une carte plusieurs IP ainsi que plusieurs type (V4 et V6) sans oublier les cartes virtuelles (pour les machines virtuelles)
Il faut donc les lister.
https://www.purebasic.com/documentation ... esses.html
Voir aussi Hostname() qui donne le nom de la machine et toute la lib Network
PS. En ligne de commande, pour avoir le détail des cartes:
Windows: ipconfig /all
linux: ifconfig ou ip a
Bonne Année.
Une machine peut avoir plusieurs carte et une carte plusieurs IP ainsi que plusieurs type (V4 et V6) sans oublier les cartes virtuelles (pour les machines virtuelles)
Il faut donc les lister.
https://www.purebasic.com/documentation ... esses.html
Voir aussi Hostname() qui donne le nom de la machine et toute la lib Network
PS. En ligne de commande, pour avoir le détail des cartes:
Windows: ipconfig /all
linux: ifconfig ou ip a
Re: Récuperer l'adresse IP de l'ordinateur.
Merci Marc pour cette réponse.
Re: Récuperer l'adresse IP de l'ordinateur.
Pour l'ip local, il faut voir "ExamineIPAddresses()" dans l"aide de pb, sinon, j'ai 3 codes trouvés dans les forums:
Mesa.
Code : Tout sélectionner
;*****************************CODE 1****************************************
If OpenWindow(0,0,0, 70, 30, "IP",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
WebGadget(0, -10, -15, 150, 45, "http://ip-whois.net/img_ip1.php")
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
;*****************************CODE 2****************************************
;GetIp.pbi V 1.00
;
;Create : 27 Aout 2012
;Update : 27 Aout 2012
;
;OS : Window, Linux, OSx
;PB 4.61
;
;
;Contributors
; Falsam
;
; Licence : Use As You Like
;
Declare InitISP() ;Lance une requete sur http://www.monip.org
Declare GetLanIp() ;Retourne l'adresse IP de l'ordinateur
Declare GetWanIp() ;Retourne l'adresse internet public
Declare.s GetISPInfo() ;Retourne le fournisseur d'acces internet
Declare.s GetProxyInfo() ;Utilisation d'un proxy oui ou non
Global Buffer.s
;
;Lance une requete sur le site monip.org
Procedure InitISP()
Protected File.l
ReceiveHTTPFile("http://www.monip.org", "index.php")
File=ReadFile(#PB_Any, "index.php")
If File
While Eof(File)=0
Buffer=ReadString(File)
If FindString(Buffer, "IP :")
Buffer=Trim(Mid(Buffer, 40))
EndIf
Wend
CloseFile(File)
EndIf
EndProcedure
;
;Retourne l'adresse IP de l'ordinateur
Procedure GetLanIp()
ExamineIPAddresses()
ProcedureReturn NextIPAddress()
EndProcedure
;
;Retourne l'adresse internet public : Celui de votre Box ou modem cable
Procedure GetWanIp()
Protected Ip.s, IP1.i, IP2.i, IP3.i,IP4.i
IP = StringField(Trim(Mid(Buffer, 1, 15)), 1, "<")
IP1 = Val(StringField(IP, 1, "."))
IP2 = Val(StringField(IP, 2, "."))
IP3 = Val(StringField(IP, 3, "."))
IP4 = Val(StringField(IP, 4, "."))
ProcedureReturn MakeIPAddress(IP1, IP2, IP3, IP4)
EndProcedure
;
;Retourne le fournisseur d'acces internet (Internet Service Provider)
Procedure.s GetISPInfo()
Protected PosStart.i, PosEnd.i
PosStart = FindString(Buffer, "<i>")
PosEnd = FindString(Buffer, "</i>")
ProcedureReturn Trim(Mid(Buffer, PosStart+3, PosEnd-PosStart-3))
EndProcedure
;Proxy ou pas
Procedure.s GetProxyInfo()
Protected PosStart.i, PosEnd.i
PosStart = FindString(Buffer, "<br><br>")
PosEnd = FindString(Buffer, "</font></html>")
ProcedureReturn Trim(Mid(Buffer, PosStart+8, PosEnd-PosStart-10))
EndProcedure
;Get Ip -Test
;IncludeFile "getip.pbi"
If InitNetwork()
InitISP()
Debug "Lan IP:"
Debug IPString(GetLanIp()) + " Computer : "+ Hostname()
Debug ""
Debug "WAN IP:"
Debug IPString(GetWanIp()) + " FAI : " + GetISPInfo()
Debug GetProxyInfo()
EndIf
;******************************CODE 3****************************************
Define NETWORK = #False
Define TCPIPv4 = #False
Define TCPIPv6 = #False
Define INTERNET= #False
If InitNetwork()
Define IP, IPv6$
NETWORK=#True
If ExamineIPAddresses(#PB_Network_IPv6)
Repeat
IP = NextIPAddress()
If IP
TCPIPv6=#True
IPv6$ = IPString(IP, #PB_Network_IPv6)
Debug "IPv6: " + IPv6$
FreeIP(IP)
EndIf
Until IP = 0
EndIf
Define IP, IPv4$
If ExamineIPAddresses()
Repeat
IP = NextIPAddress()
If IP
TCPIPv4=#True
IPv4$ = IPString(IP)
Debug "IPv4: " + IPv4$
EndIf
Until IP = 0
EndIf
Else
NETWORK=#False : Debug "Problème matériel ou logiciel sur le PC"
EndIf
DataSection
Liste_URL:
Data.s "http://api.ipify.org/?format=plain"
Data.s "http://ifconfig.co/ip"
Data.s "http://monip.outils-rezo.info/text"
Data.s "https://myip.dnsomatic.com"
Data.s "https://ipecho.net/plain"
Data.s "https://myexternalip.com/raw"
Data.s #Null$
EndDataSection
Define URL$, HttpRequest, StatusCode$, Response$, IPinternet$
Restore Liste_URL
Repeat
Read.s URL$
If URL$ <> #Null$
Debug URL$
HttpRequest = HTTPRequest(#PB_HTTP_Get, URL$, "", #PB_HTTP_NoRedirect)
If HttpRequest
StatusCode$ = Trim(HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode))
Response$ = Trim(HTTPInfo(HTTPRequest, #PB_HTTP_Response))
FinishHTTP(HTTPRequest)
Debug "StatusCode: " + StatusCode$
Debug "Response: " + Response$
Debug #Null$
If StatusCode$ = "200"
INTERNET = #True
IPinternet$ = Response$
Break ; on teste toutes les URL jusqu'a en trouver une qui réponde
EndIf
EndIf
EndIf
Until URL$ = #Null$
Debug ""
Debug "NETWORK="+NETWORK
Debug "TCPIPv4="+TCPIPv4
Debug "TCPIPv6="+TCPIPv6
Debug "INTERNET="+INTERNET
Debug ""
Debug "IPv4="+IPv4$
Debug "IPv6="+IPv6$
Debug ""
Debug "IPinternet="+IPinternet$
End
Re: Récuperer l'adresse IP de l'ordinateur.
Merci pour tous ces exemples. J'en ai mis un en pratique qui fonctionne.