obtenir l'adresse IP d'une station

obtenir l'adresse IP d'une station

Messagepar ambh123 » 11 Oct 2007 à 08:23

un code que j'ai trouve sur le net
que je trouve utile

Code : Tout sélectionner

'// Classe permettant d'obtenir l'adresse IP d'une station

Option Public

Public Const IP_SUCCESS = 0
Private Const WSADescription_Len = 255 ' 256, 0-based
Private Const WSASYS_Status_Len = 127 ' 128, 0-based
Public Const WS_VERSION_REQD = &H101
Public Const MIN_SOCKETS_REQD = 1
Public Const SOCKET_ERROR = -1

Public Type WSADATA
   wVersion As Integer
   wHighVersion As Integer
   szDescription(0 To WSADescription_Len) As Integer
   szSystemStatus(0 To WSASYS_Status_Len) As Integer
   wMaxSockets As Long
   wMaxUDPDG As Long
   dwVendorInfo As Long
End Type

Declare Function gethostbyname Lib "wsock32" (Byval hostname As String) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest As Any, xSource As Any, Byval nbytes As Long)
Declare Function lstrlenA Lib "kernel32" (lpString As Any) As Long
Declare Function WSAStartup Lib "wsock32" (Byval wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Declare Function WSACleanup Lib "wsock32" () As Long
Declare Function inet_ntoa Lib "wsock32.dll" (Byval addr As Long) As Long
Declare Function lstrcpyA Lib "kernel32" (Byval RetVal As String, Byval Ptr As Long) As Long

Class HostName
   Private HostNameStr As String
   Public IPAddress As String
   Public ErrMsg As String
   Public Error As Integer
   Sub New(host As String)
      If SocketsInitialize() Then
         Me.IPAddress = GetIPFromHostName(host)
         Me.Error = 0
         Me.ErrMsg = ""
         If Not SocketsCleanup Then
            Me.Error = 200
            Me.ErrMsg = "Windows Sockets error occurred in Cleanup."
         End If
      Else
         Me.Error = 100
         Me.ErrMsg = "Windows Sockets for 32 bit Windows is not successfully responding."
         Me.IPAddress = ""
      End If
   End Sub
End Class

Private Function SocketsInitialize() As Integer
   Dim WSAD As WSADATA
   Dim success As Long
   SocketsInitialize = (WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS)
End Function

Private Function SocketsCleanup() As Integer
   If WSACleanup() <> 0 Then
      SocketsCleanup = False
   Else
      SocketsCleanup = True
   End If
End Function

Private Function GetIPFromHostName(Byval sHostName As String) As String
   Dim ptrHosent As Long
   Dim ptrName As Long
   Dim ptrAddress As Long
   Dim ptrIPAddress As Long
   Dim dwAddress As Long
   ptrHosent = gethostbyname(sHostName & Chr(0))
   If ptrHosent <> 0 Then
      ptrName = ptrHosent
      ptrAddress = ptrHosent + 12
      CopyMemory ptrAddress, Byval ptrAddress, 4
      CopyMemory ptrIPAddress, Byval ptrAddress, 4
      CopyMemory dwAddress, Byval ptrIPAddress, 4
      GetIPFromHostName = GetIPFromAddress(dwAddress)
   End If
End Function

Public Function GetIPFromAddress(Address As Long) As String
   Dim ptrString As Long
   ptrString = inet_ntoa(Address)
   GetIPFromAddress = GetStrFromPtrA(ptrString)
End Function

Public Function GetStrFromPtrA(Byval lpszA As Long) As String
   GetStrFromPtrA = String$(lstrlenA(Byval lpszA), 0)
   Call lstrcpyA(Byval GetStrFromPtrA, Byval lpszA)
End Function


Edit Webmaster => Source http://www.breakingpar.com
________________
(\__/)
( -'.'-)
(")_(")
AMBHCie.
Avatar de l’utilisateur
ambh123
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 374
Inscrit(e) le : 21 Fév 2007 à 11:32
Localisation : Ben arous

Messagepar Michael DELIQUE » 11 Oct 2007 à 08:50

salut

ambh123 Si c'est un code que tu as trouvé merci d'en indiquer l'auteur et la provenance
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar ambh123 » 15 Oct 2007 à 17:05

desole mais je ne me rappelle plus
ca fait deja quelques semaines
________________
(\__/)
( -'.'-)
(")_(")
AMBHCie.
Avatar de l’utilisateur
ambh123
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 374
Inscrit(e) le : 21 Fév 2007 à 11:32
Localisation : Ben arous

Messagepar JYR » 15 Oct 2007 à 17:37

Avatar de l’utilisateur
JYR
Empereur des posts
Empereur des posts
 
Message(s) : 1573
Inscrit(e) le : 10 Jan 2005 à 14:47
Localisation : Quebec


Retour vers API