Avatar billede richardr Nybegynder
26. november 2000 - 13:52 Der er 11 kommentarer og
2 løsninger

Finde den IP man får fra ISP\'en

Hvordan opsnapper man den IP som man har fået fra sin internet provider..

Jeg kan godt få min lokale IP.. men det er ikke den jeg er interreseret i..

Avatar billede blazer Nybegynder
26. november 2000 - 13:57 #1
gå ind på www.myip.dk

og se den..

ellers så kører programmet winipcfg!
Avatar billede tdaugaard Nybegynder
26. november 2000 - 18:42 #2
Inkludér MS Winsock kontrollen i dit projekt og du kan bruge

strIP = Winsock1.LocalIP

strIP vil så være din IP på nettet.

Hvis du ikke er connected til nettet er .LocalIP 127.0.0.1 uden inet sharing installeret og 192.168.0.1 (mener jeg) med inet sharing.
Avatar billede richardr Nybegynder
26. november 2000 - 18:54 #3
Jeg bruger win2k og har jo så indtastet en ip i netværks instillingerne..

og når jeg bruger winsock1.LocalIP får jeg den indtastede IP og ikke den fra ISP\'en
Avatar billede tdaugaard Nybegynder
26. november 2000 - 19:26 #4
richardr:> se det meldte historien jo ikke noget om ;) Så kan jeg godtnok ikke lige komme på noget ..
Avatar billede richardr Nybegynder
26. november 2000 - 19:57 #5
hehe... ej ok.. min fejl.. :)

men hvad siger alle i andre ??? hvad?? kan ik lige høre jer... HØJERE!!!
Avatar billede peep Nybegynder
27. november 2000 - 21:48 #6
Er din Win2k sat op til at få en dynamisk ip adresse fra din ISP ??

Peep
Avatar billede richardr Nybegynder
27. november 2000 - 22:34 #7
Ja... jeg har ISDN..
Avatar billede boe Nybegynder
19. december 2000 - 17:02 #8
Sen mig din Email adresse så sender jeg dig et lille program der kan løse opgaven.

Bjarne

Eller lav et modul med denne kode.

Option Explicit

Public Const MAX_WSADescription = 256
Public Const MAX_WSASYSStatus = 128
Public Const ERROR_SUCCESS      As Long = 0
Public Const WS_VERSION_REQD    As Long = &H101
Public Const WS_VERSION_MAJOR    As Long = WS_VERSION_REQD \\ &H100 And &HFF&
Public Const WS_VERSION_MINOR    As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD    As Long = 1
Public Const SOCKET_ERROR        As Long = -1

Public Type HOSTENT
  hName      As Long
  hAliases  As Long
  hAddrType  As Integer
  hLen      As Integer
  hAddrList  As Long
End Type

Public 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


Public Declare Function WSAGetLastError Lib \"WSOCK32.DLL\" () As Long

Public Declare Function WSAStartup Lib \"WSOCK32.DLL\" _
  (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
 
Public Declare Function WSACleanup Lib \"WSOCK32.DLL\" () As Long

Public Declare Function gethostname Lib \"WSOCK32.DLL\" _
  (ByVal szHost As String, ByVal dwHostLen As Long) As Long
 
Public Declare Function gethostbyname Lib \"WSOCK32.DLL\" _
  (ByVal szHost As String) As Long
 
Public Declare Sub CopyMemory Lib \"kernel32\" Alias \"RtlMoveMemory\" _
  (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)


Public 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
   
  \'gethostname returns the name of the local host into
  \'the buffer specified by the name parameter. The host
  \'name is returned as a null-terminated string. The
  \'form of the host name is dependent on the Windows
  \'Sockets provider - it can be a simple host name, or
  \'it can be a fully qualified domain name. However, it
  \'is guaranteed that the name returned will be successfully
  \'parsed by gethostbyname and WSAAsyncGetHostByName.

  \'In actual application, if no local host name has been
  \'configured, gethostname must succeed and return a token
  \'host name that gethostbyname or WSAAsyncGetHostByName
  \'can resolve.
  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
   
 
  \'gethostbyname returns a pointer to a HOSTENT structure
  \'- a structure allocated by Windows Sockets. The HOSTENT
  \'structure contains the results of a successful search
  \'for the host specified in the name parameter.

  \'The application must never attempt to modify this
  \'structure or to free any of its components. Furthermore,
  \'only one copy of this structure is allocated per thread,
  \'so the application should copy any information it needs
  \'before issuing any other Windows Sockets function calls.

  \'gethostbyname function cannot resolve IP address strings
  \'passed to it. Such a request is treated exactly as if an
  \'unknown host name were passed. Use inet_addr to convert
  \'an IP address string the string to an actual IP address,
  \'then use another function, gethostbyaddr, to obtain the
  \'contents of the HOSTENT structure.
  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
   
  \'to extract the returned IP address, we have to copy
  \'the HOST structure and its members
  CopyMemory HOST, lpHost, Len(HOST)
  CopyMemory dwIPAddr, HOST.hAddrList, 4
 
  \'create an array to hold the result
  ReDim tmpIPAddr(1 To HOST.hLen)
  CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
 
  \'and with the array, build the actual address,
  \'appending a period between members
  For i = 1 To HOST.hLen
      sIPAddr = sIPAddr & tmpIPAddr(i) & \".\"
  Next
 
  \'the routine adds a period to the end of the
  \'string, so remove it here
  GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
 
  SocketsCleanup
   
End Function


Public 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


Public Function HiByte(ByVal wParam As Integer) As Byte
 
  \'note: VB4-32 users should declare this function As Integer
  HiByte = (wParam And &HFF00&) \\ (&H100)

End Function


Public Function LoByte(ByVal wParam As Integer) As Byte

  \'note: VB4-32 users should declare this function As Integer
  LoByte = wParam And &HFF&

End Function


Public Sub SocketsCleanup()

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

Public 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
   
   
  \'must be OK, so lets do it
  SocketsInitialize = True
       
End Function


Og lav så en form med denne kode
Option Explicit

Private Sub cmdGetMachineID_Click()

  Text1 = GetIPHostName()
  Text2 = GetIPAddress()

End Sub

Gå online og klik på knappen

Mvh.
Bjarne





Avatar billede jabp Nybegynder
19. december 2000 - 17:06 #9
Bruger du modem eller router.
Avatar billede boe Nybegynder
19. december 2000 - 17:14 #10
Isdn Modem com: 3
Bjarne
Avatar billede jabp Nybegynder
19. december 2000 - 17:18 #11
Hejsa

Så skal du bare bruge winipcfg.exe

Skriv winipcfg i Kør.
Her vælger du PPP Adapter.
Så kan du se din IP ude på nettet.
Avatar billede jabp Nybegynder
19. december 2000 - 17:20 #12
Nååår jeg har lige læst at du har win2k, så virker mit forslag ikke !!!
Avatar billede richardr Nybegynder
08. marts 2001 - 19:10 #13
boe, Den viser stadig kun den interne IP.. men du får nogle point alligevel..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester