How do I get the IP? 
Author Message
 How do I get the IP?

To find the IP address, use the following code:

Declarations:

Public Const WS_VERSION_REQD = &H101
Public Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD = 1
Public Const SOCKET_ERROR = -1
Public Const WSADescription_Len = 256
Public Const WSASYS_Status_Len = 128
Public Type HOSTENT
       hName As Long
       hAliases As Long
       hAddrType As Integer
       hLength As Integer
       hAddrList As Long
End Type

Public Type WSADATA
       wversion As Integer
       wHighVersion As Integer
       szDescription(0 To WSADescription_Len) As Byte
       szSystemStatus(0 To WSASYS_Status_Len) As Byte
       iMaxSockets As Integer
       iMaxUdpDg As Integer
       lpszVendorInfo As Long
End Type
 Public Declare Function WSAGetLastError Lib _
 "WSOCK32.DLL" () As Long

 Public Declare Function WSAStartup Lib _
 "WSOCK32.DLL" (ByVal wVersionRequired&, _
 lpWSAData As WSADATA) As Long

 Public Declare Function WSACleanup Lib _
 "WSOCK32.DLL" () As Long

 Public Declare Function gethostname Lib _
 "WSOCK32.DLL" (ByVal hostname$, HostLen&) As Long

 Public Declare Function gethostbyname Lib _
 "WSOCK32.DLL" (ByVal hostname$) As Long

 Public Declare Sub RtlMoveMemory Lib _
 "KERNEL32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&)

Code:

Public Function hibyte(ByVal wParam As Integer)
       hibyte = wParam \ &H100 And &HFF&
End Function

Public Function lobyte(ByVal wParam As Integer)
       lobyte = wParam And &HFF&
End Function
Option Explicit
 Sub Form_Load()
'     'Sockets Initialize
Dim WSAD As WSADATA
Dim iReturn As Integer
Dim sLowByte As String, sHighByte As String, sMsg As String
iReturn = WSAStartup(WS_VERSION_REQD, WSAD)
If iReturn <> 0 Then
       MsgBox "Winsock.dll is not responding."
End
End If

If lobyte(WSAD.wversion) < WS_VERSION_MAJOR _
Or (lobyte(WSAD.wversion) = WS_VERSION_MAJOR _
And hibyte(WSAD.wversion) < WS_VERSION_MINOR) Then
sHighByte = Trim$(Str$(hibyte(WSAD.wversion)))
sLowByte = Trim$(Str$(lobyte(WSAD.wversion)))
sMsg = "Windows Sockets version " & sLowByte & "." &
sHighByte
sMsg = sMsg & " is not supported by winsock.dll "
MsgBox sMsg
End
End If

If WSAD.iMaxSockets < MIN_SOCKETS_REQD Then
sMsg = "This application requires a minimum of "
sMsg = sMsg & Trim$(Str$(MIN_SOCKETS_REQD)) _
& " supported sockets."
MsgBox sMsg
End
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
       '     'Sockets Cleanup
       Dim lReturn As Long
       lReturn = WSACleanup()
              If lReturn <> 0 Then
                     MsgBox "Socket error " & Trim$(Str$(lReturn)) & "
occurred
                     in Cleanup "
              End
End If
End Sub

Private Sub Command1_click()
       Dim hostname As String * 256
       Dim hostent_addr As Long
       Dim host As HOSTENT
       Dim hostip_addr As Long
       Dim temp_ip_address() As Byte
       Dim i As Integer
       Dim ip_address As String
              If gethostname(hostname, 256) = SOCKET_ERROR Then
                     MsgBox "Windows Sockets error " &
Str(WSAGetLastError())
                     Exit Sub
              Else
                     hostname = Trim$(hostname)
              End If
       hostent_addr = gethostbyname(hostname)
              If hostent_addr = 0 Then
                     MsgBox "Winsock.dll is not responding."
                     Exit Sub
              End If
       RtlMoveMemory host, hostent_addr, LenB(host)
       RtlMoveMemory hostip_addr, host.hAddrList, 4
       ReDim temp_ip_address(1 To host.hLength)
       RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength
              For i = 1 To host.hLength
                     ip_address = ip_address & temp_ip_address(i) & "."
              Next
       ip_address = Mid$(ip_address, 1, Len(ip_address) - 1)
       MsgBox hostname
       MsgBox ip_address
End Sub

Good Luck!!!

Jelsoft VB-World
--------------------------
web    - http://www.*-*-*.com/



Sat, 16 Sep 2000 03:00:00 GMT  
 How do I get the IP?

Add the Microsoft Winsock Control to a form in your project. You IP address
can then be referred to as

<name of object>.LocalIP

Frode Carlsen



Sun, 17 Sep 2000 03:00:00 GMT  
 How do I get the IP?

This only seems to work if you DON'T have a network card.  On three of my
machines 95 and NT4.0 it will always return my network cards IP rather than
my Dial-up-networking's IP

Kable Wilmoth



Mon, 18 Sep 2000 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. getting real IP instead of Proxy ip

2. Delphi and TCP/IP (Can it be done?)

3. Detect multiple IP using VB. Almost done except ...

4. MCI Control Gets Into a Tizzy - Done Events Not Being Generated

5. Getting the IP Address

6. getting IP address

7. getting ip address

8. Getting IP with VB

9. Getting an ASP to talk to an SMTP service via IP

10. Getting IP Address from VB5

11. Getting IP address of current machine with VB5

12. Help getting external IP with winsock control

 

 
Powered by phpBB® Forum Software