|
-
Nov 7th, 1999, 03:43 AM
#1
Thread Starter
New Member
-
Nov 7th, 1999, 06:54 AM
#2
No problem, here's an example I put together using the Winsock APIs:
In a Form with 2 Textboxes and a Command Button..
Code:
Private Const MAX_WSADescription = 256
Private Const MAX_WSASYSStatus = 128
Private Const WS_VERSION_REQD = &H101
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Integer
wMaxUDPDG As Integer
dwVendorInfo As Long
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Function GetIPAddress(ByVal sHost As String) As String
Dim I As Integer
Dim lHost As Long
Dim lIP As Long
Dim sIP() As Byte
Dim sFullIP As String
Dim tHost As HOSTENT
Dim tSocket As WSADATA
'Establish an Open Socket
If WSAStartup(WS_VERSION_REQD, tSocket) <> 0 Then Exit Function
'Attempt to Locate Data pointer for Specified Host Name
lHost = gethostbyname(sHost)
If lHost = 0 Then
MsgBox "Unable to Locate Host."
Else
'Get the Host Info
CopyMemory tHost, lHost, Len(tHost)
'Extract the Address of the IP Data from the Addresslist Pointer
CopyMemory lIP, tHost.hAddrList, Len(tHost.hAddrList)
'Build a Tempory array to hold the IP Values
ReDim sIP(tHost.hLen - 1)
'Copy the IP Values into the Array
CopyMemory sIP(0), lIP, tHost.hLen
'Build the IP Address
For I = 0 To tHost.hLen - 1
sFullIP = sFullIP & "." & sIP(I)
Next
'Trim of the Preceeding Period
GetIPAddress = Mid(sFullIP, 2)
End If
'Close up the Socket
Call WSACleanup
End Function
Private Sub Command1_Click()
Text2 = GetIPAddress(Text1)
End Sub
Just put the Host/Computer Name in Text1, press the Command Button and the IP will be placed in Text2.
------------------
Aaron Young
Analyst Programmer
[email protected]
[email protected]
-
Nov 8th, 1999, 05:13 AM
#3
Thread Starter
New Member
-
Nov 8th, 1999, 05:24 AM
#4
Hyperactive Member
Aaron, I was wondering if it would be possible to use the code you gave to "sniff" IP's over the internet? Would you need to tweak it, or would it simply be too difficult to create a program to do that?
------------------
Ryan
[email protected]
ICQ# 47799046
-
Nov 8th, 1999, 06:18 AM
#5
Hyperactive Member
Pyro13: You should still have WSOCK32.DLL even though you have a warez version (don't worry I won't tell anyone ). Are you sure you typed it in exactly:
Code:
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Integer
wMaxUDPDG As Integer
dwVendorInfo As Long
End Type
------------------
Tom Young, 14 Year Old
[email protected]
ICQ: 15743470
AIM: TomY10
PERL, JavaScript and VB Programmer
-
Nov 10th, 1999, 07:50 AM
#6
Thread Starter
New Member
WSADATA 'Establish an Open Socket If WSAStartup(WS_VERSION_REQD, tSocket) <> 0 Then Exit Function 'Attempt to Locate Data pointer for Specified Host Name lHost = gethostbyname(sHost) If lHost = 0 Then MsgBox "Unable to Locate Host." Else 'Get the Host Info CopyMemory tHost, lHost, Len(tHost) 'Extract the Address of the IP Data from the Addresslist Pointer CopyMemory lIP, tHost.hAddrList, Len(tHost.hAddrList)
There is an block if without end if in that part of the code you gave me.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|