vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Fragen und Antworten zur vbarchiv.dll
VB2003.NET und netPingIP, kennt das Object ICMP_ECHO_REPLY nicht 
Autor: Frank1971
Datum: 28.11.06 12:57

Hallo,

wollte die Funktion
Public Declare Function netPingIP Lib "vbarchiv.dll" (ByVal sAddress As String, ByRef Reply As ICMP_ECHO_REPLY) As Long
in meinem VB 2003.NET Projekt einbinden, doch leider kennt mein VisualStudio Pro. das Objekt ICMP_ECHO_REPLY nicht.
Was muss ich tun, damit ich eine IP anpingen kann?
Public Class Form1
    Inherits System.Windows.Forms.Form
    Public Declare Function netPingIP Lib "vbarchiv.dll" (ByVal sAddress As _
      String, ByRef Reply As ICMP_ECHO_REPLY) As Long
 
    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button7.Click
        Dim icmp As ICMP_ECHO_REPLY
        Dim uStatus As Long
        uStatus = netPingIP(netHostToIP("www.vbarchiv.net"), icmp)
        If uStatus <> -1 Then
            MsgBox("Ping-Ergebnis: " & netEvalPingResponse(icmp.Status))
        End If
    End Sub
End Class
Gibts es das noch nicht im FrameWork 1.1 oder muß ich noch einen zusätzlichen Namespace importieren?

Gruß Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB2003.NET und netPingIP, kennt das Object ICMP_ECHO_REPLY nicht 
Autor: ModeratorMartoeng (Moderator)
Datum: 29.11.06 16:48

Die vb6-deklaration lautet wie folgt:

Public Type IP_OPTION_INFORMATION
Ttl As Byte 'Time to live
Tos As Byte 'Type of service
Flags As Byte 'IP header flags
OptionsSize As Byte 'Größe der Optionsdaten in Byte
OptionsData As Long 'Zeiger auf die Optionsdaten
End Type
Public Type ICMP_ECHO_REPLY
address As Long 'IP-Adresse in Form einer IPADDR-Struktur
Status As Long 'Status für -> netEvalPingResponse
RoundTripTime As Long 'TripTime in Millisekunden
DataSize As Long 'Antwortgröße in Byte
Reserved As Integer 'Reserviert
ptrData As Long 'Zeiger zu den Antwortdaten
Options As IP_OPTION_INFORMATION 'Antwortoptionen
Data As String * 250 'Daten
End Type


die datentypen muss man noch etwas anpassen für .net


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB2003.NET und netPingIP, kennt das Object ICMP_ECHO_REPLY nicht 
Autor: Stefan Linder
Datum: 29.11.06 16:50

Hallo Frank,

du must ICMP_ECHO_REPLY als UDT definieren:

Public Type ICMP_ECHO_REPLY
   address         As Long                  'IP-Adresse in Form einer 
   ' IPADDR-Struktur
   Status          As Long                  'Status für -> netEvalPingResponse
   RoundTripTime   As Long                  'TripTime in Millisekunden
   DataSize        As Long                  'Antwortgröße in Byte
   Reserved        As Integer               'Reserviert
   ptrData         As Long                  'Zeiger zu den Antwortdaten
   Options         As IP_OPTION_INFORMATION 'Antwortoptionen
   Data            As String * 250          'Daten
End Type

Gru?, Stefan

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB2003.NET und netPingIP, kennt das Object ICMP_ECHO_REPLY nicht 
Autor: Frank1971
Datum: 30.11.06 10:01

Hab eine Klasse mit den fehlenden Strukturen hinzugefügt und jetzt funktioniert es:
Option Strict On
Imports System.Net
Imports System.Net.Sockets
Imports System.Runtime.InteropServices
 
Public Class csNet
 
    Public Declare Function netPingIP Lib "vbarchiv.dll" (ByVal sAddress As _
      String, ByRef Reply As ICMP_ECHO_REPLY) As Long
    Public Declare Function netEvalPingResponse Lib "vbarchiv.dll" (ByVal _
    nPingStatus As Long) As String
 
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
    Public Structure ICMP_ECHO_REPLY
        Public Address As Integer
        Public Status As ICMPStatusEnum
        Public RoundTripTime As Integer
        Public DataSize As Short
        Public Reserved As Short
        Public DataPtr As IntPtr
        Public Options As ICMP_OPTIONS
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=250)> _
        Public Data As String
    End Structure
 
    Public Enum ICMPStatusEnum
        Success = 0
        BufferTooSmall = 11001 'Buffer Too Small 
        DestinationNetUnreachable = 11002 'Destination Net Unreachable 
        DestinationHostUnreachable = 11003 'Destination Host Unreachable 
        DestinationProtocolUnreachable = 11004 'Destination Protocol Unreachable 
        DestinationPortUnreachable = 11005 'Destination Port Unreachable 
        NoResource = 11006 'No Resources 
        BadOption = 11007 'Bad Option 
        HardwareError = 11008 'Hardware Error 
        LargePacket = 11009 'Packet Too Big 
        RequestTimedOUT = 11010 'Request Timed Out 
        BadRequest = 11011 'Bad Request 
        BadROUTE = 11012 'Bad Route 
        TtlExpiredInTransit = 11013 'TimeToLive Expired Transit 
        TtlExpiredInReassembly = 11014 'TimeToLive Expired Reassembly 
        Parameter = 11015 'Parameter Problem 
        SourceQuench = 11016 'Source Quench 
        OptionTooBig = 11017 'Option Too Big 
        BadDestination = 11018 'Bad Destination 
        NegotiatingIPSEC = 11032 'Negotiating IPSEC 
        GeneralFailure = 11050 'General Failure 
    End Enum
 
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
    Public Structure ICMP_OPTIONS
        Public Ttl As Byte
        Public Tos As Byte
        Public Flags As Byte
        Public OptionsSize As Byte
        Public OptionsData As IntPtr
    End Structure
 
End Class
        Dim icmp As csNet.ICMP_ECHO_REPLY
        Dim uStatus As Long
        uStatus = csNet.netPingIP("192.168.xxx.xxx", icmp)
        If uStatus <> -1 Then
            MsgBox("Ping-Ergebnis: " & csNet.netEvalPingResponse(icmp.Status))
        End If
Gruß Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-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