vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Netzwerk   |   VB-Versionen: VB620.12.04
Eigene und Server-IP-Adresse ermitteln (RAS)

Mit diesem Tipp lässt sich die eigene Internet-IP-Adresse, sowie die IP-Adresse Ihres Internet-Providers ermitteln.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  20.902 
www.tools4vb.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit nachfolgendem Tipp lässt sich die eigene Internet-IP-Adresse, sowie die IP-Adresse Ihres Internet-Providers ermitteln. Hierzu wird zunächst nach einer aktiven Internet-Verbindung gesucht und das Handle ermitteln. Anhand des Verbindungs-Handles werden dann über die API-Funktion RasGetProjectionInfo die erweiterten Infos zur IP-Adresse ermittelt.

Fügen Sie nachfolgenden Code am besten in ein Modul:

Option Explicit
 
' benötigte API-Deklarationen
Private Declare Function RasEnumConnections Lib "rasapi32.dll" _
  Alias "RasEnumConnectionsA" ( _
  lpRasCon As Any, _
  lpcb As Long, _
  lpcConnections As Long) As Long
 
Private Declare Function RasGetProjectionInfo Lib "rasapi32.dll" _
  Alias "RasGetProjectionInfoA" ( _
  ByVal hRasConn As Long, _
  ByVal rasProjectionType As Long, _
  lpProjection As Any, _
  lpcb As Long) As Long
 
Private Type RASCONN
  dwSize As Long
  hRasConn As Long
  szEntryName(256) As Byte
  szDeviceType(16) As Byte
  szDeviceName(128) As Byte
End Type
 
Private Enum RASPROJECTION
  RASP_Amb = &H10000
  RASP_PppNbf = &H803F&
  RASP_PppIpx = &H802B&
  RASP_PppIp = &H8021&
  RASP_Slip = &H20000
End Enum
 
Private Type RASPPPIP
  dwSize As Long
  dwError As Long
  szIpAddress As String * 16
  szServerIpAddress As String * 16
End Type
' eigene IP-Adresse und optional Server-IP-Adresse
' der aktiven Internet-Verbindung ermitteln
Public Function RAS_GetIP(ByRef sIPAddress As String, _
  Optional ByRef sServerIPAddress As String) As Boolean
 
  Dim lpRasConn(255) As RASCONN
  Dim lpcConnections As Long
  Dim lpcb As Long
  Dim Buffer() As Byte
  Dim nBufSize As Long
  Dim nResult As Long
  Dim oRASInfo As RASPPPIP
 
  ' Prüfen, ob eine aktive DFÜ-Verbindung besteht
  lpRasConn(0).dwSize = 412
  lpcb = 256 * lpRasConn(0).dwSize
  RasEnumConnections lpRasConn(0), lpcb, lpcConnections
  If lpcConnections > 0 Then
    ' Infos zur aktiven DFÜ-Verbindung ermitteln
    oRASInfo.dwSize = Len(oRASInfo)
    If RasGetProjectionInfo(lpRasConn(0).hRasConn, RASP_PppIp, oRASInfo, oRASInfo.dwSize) = 0 Then
      ' eigene IP-Adressse
      sIPAddress = TrimNull(oRASInfo.szIpAddress)
 
      ' Server-IP-Adresse des Internet-Providers
      sServerIPAddress = TrimNull(oRASInfo.szServerIpAddress)
 
      RAS_GetIP = True
    End If
  End If
End Function
' Hilfsfunktion
Private Function TrimNull(ByVal sString As String) As String
  TrimNull = RTrim$(Replace(sString, Chr$(0), ""))
End Function

Beispiel für den Aufruf:

Private Sub Command1_Click()
  Dim sIPAddress As String
  Dim sServerIPAddress As String
 
  If RAS_GetIP(sIPAddress, sServerIPAddress) Then
    Label1.Caption = "Eigene IP-Adresse: " & sIPAddress
    Label2.Caption = "Server IP-Adresse: " & sServerIPAddress
  Else
    MsgBox "keine aktive Internetverbindung vorhanden!"
  End If
End Sub

Anmerkung:
Nicht alle Internet-Provider geben die eigene Server-IP-Adresse preis.
 

Dieser Tipp wurde bereits 20.902 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel