Bonjour developpant actuellement un petit script en vbs j ai besoin de pinger une plage d ip pas de soucis pour la boucle ou pour les option mon seul pb est d integrer une commande ping dans le script et dans recuperer le resultat sous forme de valeur booleene! voila j ai essayer des tas de solution mais la je bloque
Merci beaucoup mais personnellement j ai utiliser quelque chose comme sa:
Set WshExec = WshShell.Exec("ping -n 1 -w 500 " & strComputer) 'send 1 echo requests, waiting half secs
strPingResults = LCase(WshExec.StdOut.ReadAll)
If InStr(strPingResults, "reply from") Then
...
cependant je recherche des liens sur wmi notament pour ressortir le hostname a partir de l adresse IP ( je profite du moment car je n ai pas encore réaliser mes recherche.)
si quelqu’un possede quelque un de ces liens sa serais simpa encore merci et a bientot!
Pour récuper le hostname depuis une ip, en VB je fait comme ça :
(dans un module)
Option Explicit
Public Enum WinsockVersion
SOCKET_VERSION_11 = &H101
SOCKET_VERSION_22 = &H202
End Enum
Public Const WSADESCRIPTION_LEN = 257
Public Const WSASYS_STATUS_LEN = 129
Public Const INADDR_NONE = &HFFFF
Public Const AF_INET = 2
Public Const NI_MAXHOST = 1025
Public Const NI_MAXSERV = 32
Public Const NI_NUMERICSERV = &H8
Public Type sockaddr_in
sin_family As Integer
sin_port As Integer
sin_addr As Long
'sin_addr As in_addr
sin_zero(1 To 8) As Byte
End Type
Public Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription As String * WSADESCRIPTION_LEN
szSystemStatus As String * WSASYS_STATUS_LEN
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Public Declare Function inet_addr Lib "ws2_32.dll" (ByVal cp As String) As Long
Public Declare Function htons Lib "ws2_32.dll" (ByVal hostshort As Integer) As Integer
Public Declare Function getnameinfo Lib "ws2_32.dll" (sa As sockaddr_in, ByVal salen As Long, ByVal host As String, ByVal hostlen As Long, ByVal serv As String, ByVal servlen As Long, ByVal flags As Long) As Long
Public Declare Function WSAStartup Lib "ws2_32.dll" (ByVal wVR As Long, lpWSAD As WSAData) As Long
Public Declare Function WSACleanup Lib "ws2_32.dll" () As Long
Function GetHostnameByAddr(ByVal sz_ip As String, ByVal port As Integer) As String
Dim si As sockaddr_in
Dim ret As Long
Dim hostname As String
Dim servInfo As String
si.sin_family = AF_INET
si.sin_addr = inet_addr(sz_ip)
si.sin_port = htons(port)
hostname = Space(NI_MAXHOST)
servInfo = Space(NI_MAXSERV)
ret = getnameinfo(si, LenB(si), hostname, NI_MAXHOST, servInfo, NI_MAXSERV, NI_NUMERICSERV)
If ret = 0 Then
GetHostnameByAddr = hostname
Else
GetHostnameByAddr = "NULL"
End If
End Function
Public Function InitializeWinsock(Version As WinsockVersion) As Long
Dim udtWinsockData As WSAData
InitializeWinsock = WSAStartup(Version, udtWinsockData)
End Function
(Dans une form ou n’importe ou d’ailleurs)
Private Sub Form_Load()
If InitializeWinsock(SOCKET_VERSION_22) > 0 Then
MsgBox ("Winsock Init Error !")
End
End If
MsgBox (GetHostnameByAddr("127.0.0.1", 27015))
Call WSACleanup
End
End Sub
Merci beaucoup c parfais!!!
je mettrais par la suite l ensemble de mon code permettant de creer la liste des ip, tout en ressensant leur hostname, os, et logicielle installé! en repertoriant tout sa dans exel!
sa fais encore pas mal de taf mais bon!