السلام عليكم ورحمة الله وبركاته
ا
أتمنى من أعضاء هذا المنتدى الطيبين ان يساعدوني في فهم هذه الشفرة في الأسفل إيعاز إيعاز انا اتمنى منهم شرحها بالتفصيل وبالأرقام
شكرا
الشفرة
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To 256) As Byte
szSystemStatus(0 To 128) As Byte
wMaxSockets As Long
wMaxUDPDG As Long
dwVendorInfo As Long
End Type
Private Declare Function WSAStartup Lib "wsock32" _
(ByVal wVersionRequired As Long, _
lpWSADATA As WSADATA) As Long
Private Declare Function gethostbyname Lib "wsock32" _
(ByVal HostName As String) As Long
Private Declare Function inet_ntoa Lib "WSOCK32.DLL" _
(ByVal Addr As Long) As Long
Private Declare Function lstrlenA Lib "kernel32" _
(lpString As Any) As Long
Private Declare Function lstrcpyA Lib "kernel32" _
(ByVal RetVal As String, _
ByVal Ptr As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(xDest As Any, _
xSource As Any, _
ByVal nbytes As Long)
Private Function GetStrFromPtrA(ByVal lpszA As Long) As String
GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
Private Sub Command1_Click()
If SocketsInitialize() Then
IPAddress = GetIPFromHostName(Text1.Text)
Text2.Text = IPAddress
End If
End Sub
Private Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
SocketsInitialize = WSAStartup(&H101, WSAD) = 0
End Function
Private Function GetIPFromHostName(ByVal HostName As String) As String
Dim ptrHosent As Long 'address of HOSENT structure
Dim ptrAddress As Long 'address of address pointer
Dim ptrIPAddress As Long
Dim ptrIPAddress2 As Long
ptrHosent = gethostbyname(HostName)
If ptrHosent <> 0 Then
ptrAddress = ptrHosent + 12
CopyMemory ptrAddress, ByVal ptrAddress, 4
CopyMemory ptrIPAddress, ByVal ptrAddress, 4
CopyMemory ptrIPAddress2, ByVal ptrIPAddress, 4
GetIPFromHostName = GetStrFromPtrA(inet_ntoa(ptrIPAddress2))
End If
End Function
