WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   15 IPs pingen und antowrt erhalten (mit vb) (http://www.wcm.at/forum/showthread.php?t=117486)

Potassium 02.12.2003 20:13

15 IPs pingen und antowrt erhalten (mit vb)
 
hi leute
ich will ein programm schreiben das ca 15 vorgegebene IP-Adressen pingt und dann zb in ein label (aber das is egal) ausgibt welche schon vergeben ist und welche nicht. mit dem shell("ping.exe blabaleb) bin ich ned weitergekommen. habt ihr ideen? gibt es da einen API-Aufruf?
wie ist das am besten/einfachsten zu lösen?
PS: wie im Titel steht, das ganze plz für vb 6.0.

mfg
Potassium

daytrader 02.12.2003 20:19

das sollte helfen

Joker 02.12.2003 20:19

Hallo,

schau doch mal da nach

http://www.microsoft.com/technet/tre...k/scrnet04.asp

Potassium 02.12.2003 21:09

thx @beide
@daytrader:
leider funzt "dein" quellcode ned. er zeigt das alle adressen erreicbar sind auch die die es gar ned gibt. und hostnamen funzen gar ned.

daytrader 02.12.2003 22:19

habs nun mit VB5 ausprobiert und funkt. tadellos


Code:

Option Explicit

' Benötigte API-Deklaration
Private Declare Function IsDestinationReachable Lib _
  "Sensapi.dll" Alias "IsDestinationReachableA" _
  (ByVal lpszDestination As String, _
  lpQOCInfo As QOCINFO) As Long

Private Type QOCINFO
  dwSize As Long
  dwFlags As Long
  dwInSpeed As Long
  dwOutSpeed As Long
End Type

' Server anpingen und Reaktionszeit zurückgeben
Public Function Ping(ByVal sHost As String) As Single
  Dim QI As QOCINFO
  Dim vTime As Single
 
  QI.dwSize = Len(QI)
  vTime = Timer
  If IsDestinationReachable(sHost, QI) = 1 Then
    Ping = Timer - vTime
  Else
    Ping = -1
  End If
End Function


Private Sub Form_Load()

Dim nTime As Single
nTime = Ping("217.160.105.222")
If nTime <> -1 Then
  MsgBox "Server erreichbar: Pingzeit: " & CStr(nTime) & " Sekunden"
Else
  MsgBox "Server nicht erreichbar!"
End If

End Sub


Nightman 02.12.2003 22:21

servus an alle

also potassium schreibt das tool eigentlich für mich

er hatte es schon funktionierend auf seinem pc(winxp)

dann hatt er es mir geschickt schau da ist es ein automatisierungs fehler kann uns wer helfen bitte

------------------------
sorce

Private Sub cmdPrüfen_click()
lbl.Caption = "Untersuche Netzwerk..."

For i = 1 To 15
strMachines = "192.168.0." & i
aMachines = Split(strMachines, ";")

For Each machine In aMachines
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonat e}").ExecQuery("select * from Win32_PingStatus where address = '" & machine & "'")
For Each objStatus In objPing
If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
temp = temp & vbCrLf & ("IP-Adresse " & machine & " ist in diesem Netzwerk nicht vergeben")
Else
temp = temp & vbCrLf & ("IP-Adresse " & machine & " ist in diesem Netzwerk bereits vergeben")
End If
Next
Next
Next i
lbl.Caption = temp
End Sub
-------------

Fehler

hier

daytrader 02.12.2003 22:24

vielleicht andere sensapi.dll version auf deinem rechner?
meine ist 5.0.2195.6627

Potassium 02.12.2003 22:25

deleted

Potassium 02.12.2003 22:26

habs auch nochmal bei meinem 2en pc auf win2k ausprobiert... und es funzt ned......folgenden fehlermeldung:
edit: siehe unten

@ daytrader:
ich hab es mit vb6.0 probiert da funzt es ned.zumindest zeigt er keine richtigen ergebnisse.......:heul:

Potassium 02.12.2003 22:30

Zitat:

Original geschrieben von daytrader
vielleicht andere sensapi.dll version auf deinem rechner?
meine ist 5.0.2195.6627

meine ist: 5.1.2600.1106


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag