vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Name eines Routers ermitteln 
Autor: Stefan B.
Datum: 02.08.05 07:39

Hallo

folgender Code ist die "Übersetzung" von getnameinfo nach VB - hoffe ich

Option Explicit
Private Const NI_MAXHOST = 1025
Private Const NI_MAXSERV = 32
Private Const AF_INET = 2                      ' internetwork: UDP, TCP, etc.
 
Private Const WS_VERSION_REQD     As Long = &H202
Private Const MAX_WSADescription = 256
Private Const MAX_WSASYSStatus = 128
 
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 Type sockaddr_in
    sin_family       As Integer
    sin_port         As Integer
    sin_addr         As Long
    sin_zero(1 To 8) As Byte
End Type
 
 
Private Const NI_NOFQDN = &H1&         ' Only return nodename portion for local 
' hosts
 
Private Const NI_NUMERICHOST = &H2&     ' Return numeric form of the host's _
  address */
Private Const NI_NAMEREQD = &H4&        ' Error if the host's name not in DNS */
Private Const NI_NUMERICSERV = &H8&     ' Return numeric form of the service ( 
' port #) */
Private Const NI_DGRAM = &H10&          ' Service is a datagram service */
 
Private Declare Function getnameinfo Lib "Ws2_32" (ByRef sa As sockaddr_in, _
  ByVal salen As Long, ByVal Host As String, ByVal hostlen As Long, ByVal serv _
  As String, ByVal servlen As Long, ByVal flags As Long) As Long
Private Declare Function Ipv4ToLong Lib "ws2_32.dll" Alias "inet_addr" (ByVal _
cp As String) As Long
Private Declare Function htons Lib "ws2_32.dll" (ByVal hostshort As Integer) As _
Integer
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 WSAGetLastError Lib "wsock32.dll" () As Long
 
Public Function VB_getnameinfo(IP As String, Port As Long, HostName As String, _
  ServiceName As String) As Long
' Declare and initialize variables
Dim sa As sockaddr_in
Dim RetCode As Long
Dim Host As String * NI_MAXHOST
Dim Service As String * NI_MAXSERV
Dim WSAD As WSADATA
RetCode = WSAStartup(WS_VERSION_REQD, WSAD)
If RetCode <> 0 Then
   VB_getnameinfo = False
   Exit Function
End If
' -----------------------------------------
' Set up sockaddr_in structure which is passedto the getnameinfo function
sa.sin_family = AF_INET
sa.sin_addr = Ipv4ToLong(IP)
sa.sin_port = htons(Port)
' -----------------------------------------
' Call getnameinfo
RetCode = getnameinfo(sa, Len(sa), Host, Len(Host), vbNull, 0, NI_NUMERICSERV)
If RetCode = 0 Then
   HostName = Left$(Host, InStr(1, Host, Chr(0)) - 1)
   ServiceName = Left$(Service, InStr(1, Host, Chr(0)) - 1)
End If
WSACleanup
VB_getnameinfo = RetCode
End Function
Ich hoffe, der Code hilft Dir weiter ...!

Gruß
Stefan
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Name eines Routers ermitteln1.506NeoInferno01.08.05 12:46
Re: Name eines Routers ermitteln1.192NeoInferno01.08.05 14:35
Re: Name eines Routers ermitteln1.604Stefan B.02.08.05 07:39
Re: Name eines Routers ermitteln1.083NeoInferno02.08.05 09:28
Re: Name eines Routers ermitteln1.078NeoInferno02.08.05 10:22
Re: Name eines Routers ermitteln1.136Stefan B.02.08.05 10:53
Re: Name eines Routers ermitteln1.121NeoInferno02.08.05 11:36
Re: Name eines Routers ermitteln1.213Joerg03.08.05 08:33
Re: Name eines Routers ermitteln1.111NeoInferno03.08.05 09:53

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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