Results 1 to 5 of 5

Thread: [RESOLVED] find ip range in textbox

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Aug 2011
    Posts
    105

    Resolved [RESOLVED] find ip range in textbox

    if i say that my ip is : 88.198.24.4
    and i get it using this code
    Private Const MAX_WSADescription = 256
    Private Const MAX_WSASYSStatus = 128
    Private Const ERROR_SUCCESS As Long = 0
    Private Const WS_VERSION_REQD As Long = &H101
    Private Const WS_VERSION_MAJOR As Long = _
    WS_VERSION_REQD \ &H100 And &HFF&
    Private Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Private Const MIN_SOCKETS_REQD As Long = 1
    Private Const SOCKET_ERROR As Long = -1

    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 Function WSAGetLastError Lib "WSOCK32.DLL" () 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 Declare Function gethostname Lib "WSOCK32.DLL" _
    (ByVal szHost As String, ByVal dwHostLen As Long) As Long

    Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
    (ByVal szHost As String) As Long

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
    (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)

    Private Function GetIPAddress() As String
    Dim sHostName As String * 256
    Dim lpHost As Long
    Dim HOST As HOSTENT
    Dim dwIPAddr As Long
    Dim tmpIPAddr() As Byte
    Dim i As Integer
    Dim sIPAddr As String
    If Not SocketsInitialize() Then
    GetIPAddress = ""
    Exit Function
    End If
    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPAddress = ""
    MsgBox "Windows Sockets error " & str$(WSAGetLastError()) & _
    " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    sHostName = Trim$(sHostName)
    lpHost = gethostbyname(sHostName)
    If lpHost = 0 Then
    GetIPAddress = ""
    MsgBox "Windows Sockets are not responding. " & _
    "Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    CopyMemory HOST, lpHost, Len(HOST)
    CopyMemory dwIPAddr, HOST.hAddrList, 4
    ReDim tmpIPAddr(1 To HOST.hLen)
    CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
    For i = 1 To HOST.hLen
    sIPAddr = sIPAddr & tmpIPAddr(i) & "."
    Next
    GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
    SocketsCleanup
    End Function

    Private Function GetIPHostName() As String
    Dim sHostName As String * 256
    If Not SocketsInitialize() Then
    GetIPHostName = ""
    Exit Function
    End If
    If gethostname(sHostName, 256) = SOCKET_ERROR Then
    GetIPHostName = ""
    MsgBox "Windows Sockets error " & str$(WSAGetLastError()) & _
    " has occurred. Unable to successfully get Host Name."
    SocketsCleanup
    Exit Function
    End If
    GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
    SocketsCleanup
    End Function


    Private Function HiByte(ByVal wParam As Integer)
    HiByte = wParam \ &H100 And &HFF&
    End Function

    Private Function LoByte(ByVal wParam As Integer)
    LoByte = wParam And &HFF&
    End Function

    Private Sub SocketsCleanup()
    If WSACleanup() <> ERROR_SUCCESS Then
    MsgBox "Socket error occurred in Cleanup."
    End If
    End Sub

    Private Function SocketsInitialize() As Boolean
    Dim WSAD As WSADATA
    Dim sLoByte As String
    Dim sHiByte As String
    If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
    MsgBox "The 32-bit Windows Socket is not responding."
    SocketsInitialize = False
    Exit Function
    End If
    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
    MsgBox "This application requires a minimum of " & _
    CStr(MIN_SOCKETS_REQD) & " supported sockets."
    SocketsInitialize = False
    Exit Function
    End If
    If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or _
    (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
    HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
    sHiByte = CStr(HiByte(WSAD.wVersion))
    sLoByte = CStr(LoByte(WSAD.wVersion))
    MsgBox "Sockets version " & sLoByte & "." & sHiByte & _
    " is not supported by 32-bit Windows Sockets."
    SocketsInitialize = False
    Exit Function
    End If
    SocketsInitialize = True
    End Function

    'Insert this code to your form:

    Private Sub Form_Load()
    Text1.Text = "" & GetIPAddress()
    End Sub
    it`s show it in the text box but how can i get the rang of ip only? like as "88.198"
    and how can make textbox write 4 num in it only ??

  2. #2
    PowerPoster
    Join Date
    Feb 2012
    Location
    West Virginia
    Posts
    13,278

    Re: find ip range in textbox

    Do not center your post like that, To hard to read.

    I am not even going to try to read that unformatted wall of code.

    Get rid of the centering, use code tags and make sure your code is properly indented for readibility

  3. #3
    PowerPoster SamOscarBrown's Avatar
    Join Date
    Aug 2012
    Location
    NC, USA
    Posts
    7,442

    Re: find ip range in textbox

    Maybe something like this (may be a little drawn out (and probably easy to do with lot less lines of code), but is this what you are looking for....
    the first two sections of the IP address?

    Code:
    Private Sub Form_Load()
        Dim myIp As String
        Dim mystart As String
        Dim myIpSecondSet As String
        myIp = GetIPAddress()
        Dim x As Integer
        Dim y As Integer
        x = InStr(1, myIp, ".")
        myIpstart = Mid(myIp, 1, x)
        myIp = Mid(myIp, x + 1)
        x = InStr(1, myIp, ".")
        myIpSecondSet = Mid(myIp, 1, x - 1)
        Text1.Text = myIpstart & myIpSecondSet
    End Sub
    if you want four numbers, WHAT 4 numbers? Four sets of IP addresses truncated as "XXX.XXX"?

  4. #4
    PowerPoster SamOscarBrown's Avatar
    Join Date
    Aug 2012
    Location
    NC, USA
    Posts
    7,442

    Re: find ip range in textbox

    Sorry, forgot all about SPLIT().

    Here:

    Code:
        Dim aIp() As String
        aIp = Split(GetIPAddress, ".")
        Text1.Text = aIp(0) & "." & aIp(1)

  5. #5

    Thread Starter
    Lively Member
    Join Date
    Aug 2011
    Posts
    105

    Re: find ip range in textbox

    Quote Originally Posted by SamOscarBrown View Post
    Sorry, forgot all about SPLIT().

    Here:

    Code:
        Dim aIp() As String
        aIp = Split(GetIPAddress, ".")
        Text1.Text = aIp(0) & "." & aIp(1)
    Thx Sir That what i realy want

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width