Hi all,
i need to find Internet Service provider IP Address through VB6 Coding. (http://www.whatismyip.net/)
Is it possible?
Please send me the coding.

Recommended Answers

All 4 Replies

You can try the following code...

Option Explicit

'Add a textbox (Text1) And a Command button (Command1) To a New form And use the following code:

'Usage: Fill in the textbox with the name you want to resolve and click the cmd button i.e. www.google.com

Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1
Private Const SOCKET_ERROR = -1
Private Const WSADescription_Len = 256
Private Const WSASYS_Status_Len = 128

Private Type HOSTENT
   hName As Long
   hAliases As Long
   hAddrType As Integer
   hLength As Integer
   hAddrList As Long
End Type

Private 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

Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired&, lpWSAData As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal hostname$) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&)

Function hibyte(ByVal wParam As Integer)

   hibyte = wParam \ &H100 And &HFF&

End Function

Function lobyte(ByVal wParam As Integer)

   lobyte = wParam And &HFF&

End Function

Sub SocketsInitialize()

   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

Sub SocketsCleanup()
   Dim lReturn As Long

   lReturn = WSACleanup()

   If lReturn <> 0 Then
      MsgBox "Socket error " & Trim$(Str$(lReturn)) & " occurred in Cleanup "
      End
   End If

End Sub

Sub Form_Load()

   SocketsInitialize

End Sub

Private Sub Form_Unload(Cancel As Integer)

   SocketsCleanup

End Sub

Private Sub Command1_click()
   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

   hostent_addr = gethostbyname(Text1)

   If hostent_addr = 0 Then
      MsgBox "Can't resolve name."
      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 ip_address

End Sub
commented: Thanks you so much. i have tried this coding. While loading am getting an error message that "This application requires a minimum of 1 supported sockets.". i have comment block the form loading. (SocketsInitialize) If i type anything in the text box, it i +0

ISP IP? or your IP Address?

You can use is use M$ winsock control; Try it,

put winsock on form, then add this code in form load event;

   Debug.Print Winsock1.LocalIP

then check your immediate window, you will see your IP Address (Same address that you can see on http://www.whatismyip.net/)

commented: Thanks for your reply. As per this coding it is showing the local machine ip only. i want to know my internet service provider IP Address. +0

Thank you so much. i have tried this coding. While loading am getting an error message that "This application requires a minimum of 1 supported sockets.". i have comment block the form loading. (SocketsInitialize) If i type anything in the text box, it is working fine. for example if i type www.google.com then its apprearing the IP. If i leave it blank it is showing my Local IP(DHCP). I am using STATIC IP Broadband connection. i want to know the Internet Service Provider IP Address. (www.whatismyipaddress.com).

Have a look at the files and codes HERE

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.