C'est ce que vous propose l'include GetIp.pbi auquel j'ai ajouté une procédure pour obtenir aussi l'adresse IP local de votre ordinateur.
Pour le moment j'interroge qu'un seul site web pour obtenir l'adresse IP public. je ne manquerais pas de poster une suite à ce code.
L'include GetIp.pbi
Code : Tout sélectionner
;GetIp.pbi V 1.10
;
;Create : 27 Aout 2012
;Update : 19 Mars 2014
;
;OS : Window, Linux, OSx
;PB 4.61 -> 5.22
;
;
;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", "info.net")
File=ReadFile(#PB_Any, "info.net")
If File
While Eof(File)=0
Buffer=ReadString(File)
If FindString(Buffer, "IP :")
Buffer=Trim(Mid(Buffer, 40))
EndIf
Wend
CloseFile(File)
EndIf
DeleteFile("info.net")
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
Code : Tout sélectionner
;Get Ip -Test
IncludeFile "getip.pbi"
If InitNetwork()
InitISP()
Debug "Lan IP : " + IPString(GetLanIp()) + " Computer : "+ Hostname()
Debug ""
Debug "WAN IP : " + IPString(GetWanIp()) + " FAI : " + GetISPInfo()
Debug ""
EndIf