
Téléchargement : Affiche mon IP V1.20 (Binaire 41 ko)
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
Code : Tout sélectionner
debug RunProgram("http://monip.net/")
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)
Code : Tout sélectionner
InitNetwork()
UserIPViewer$="http://h3x0r.ath.cx/Sonstiges/ShowMyIp12.php"
UserIP$ = StringField(GetHTTPHeader(UserIPViewer$), 2, Chr(34))
Debug UserIP$
Code : Tout sélectionner
InitNetwork()
UserIPViewer$="http://h3x0r.ath.cx/Sonstiges/ShowMyIp12.php"
UserIP$ = StringField(GetHTTPHeader(UserIPViewer$), 2, Chr(34))
Debug UserIP$
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.Ar-S a écrit :Joli Falsam. Du coup tu es passé par WMI ou par le registre ? (ou par ipconfig ?) pour choper les infos ?
Ok mercifalsam a écrit : L'adresse IP public est capturé avec l'include GetIp.pbi
http://www.purebasic.fr/french/viewtopi ... =6&t=13085
Ooops ! C'est une bonne idéeAr-S a écrit :N'oublie pas d'effacer le fichier index.php après récupération de l'IP dans ton GetIp.pbi
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
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
Hors Comate plus :p il faut que tu exécutes une requete sélectionnant les cartes réseaux ayant une activité IPAr-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.
Code : Tout sélectionner
Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE