Gå til innhold

VBS script for ping resultat


Anbefalte innlegg

Skrevet

Hvordan scipte dette i vbs.

 

-Ping 192.168.1.1

 

-Dersom svar start programm xxxx

 

-Dersom ikke svar vis beskjed boks på skjerm

 

Har prøvd en del nå, men finner ikke ut av det :cry: .

 

Takker for all hjelp.

Videoannonse
Annonse
Skrevet (endret)

I mine øyne må den definitivt letteste metoden å løse dette på være å kjøre Ping.exe med de riktige paramentre og deretter analysere dets utdata, eksempelvis som følger:

Dim sTarget, sOutput, sCommand, oShell, oPing

Dim nRequests, iTTL, iBufferSize, wTimeout

 

' Hent destinasjonsdatamaskinen vi skal pinge

sTarget = InputBox("Skriv IP-adressen du vil pinge.", "Destinasjon")

 

' Konfigurasjon

nRequests = 1 ' Antall anmodninger å sende (øk om ustabile servere skaper unøyaktige tester)

iTTL = 255 ' Time To Live - hvor mange ledd ICMP-pakken kan traversere.

iBufferSize = 32 ' Bufferstørrelsen av tilfeldig data som skal sendes

wTimeout = 2000 ' Hvor mange millisekunder en skal vente på hvert svar

 

' IKke fortsett dersom brukeren kansellerte pinget

If LenB(sTarget) <> 0 Then

 

    ' Initialiser nødvendig komponent

    Set oShell = CreateObject("WScript.Shell")

 

    ' Bygg kommando som skal ekseveres

    sCommand = "ping -n " & nRequests & " -l " & iBufferSize & " -i " & iTTL _

                & " -w " & wTimeout & " " & sTarget

   

    ' Ping denne addressen

    Set oPing = oShell.Exec(sCommand)

   

    ' Hent utdata

    sOutput = oPing.StdOut.ReadAll

 

    ' Benytter en meget simpel metode for å avgjøre hvorvidt pinget var suksessrikt eller ei (ser etter strengen "Reply from")

    If InStr(1, sOutput, "reply from", vbTextCompare) <> 0 Then

        ' Kjør et program (her Notepad)

        oShell.Run "Notepad.exe", 1, True

    Else

        MsgBox "Kunne ikke kontakte " & sTarget & ".", vbCritical

    End If

   

End If

Endret av aadnk
Skrevet

batchscript?

@echo off
echo Pinging host with 1 ms response, once.
ping [IP Adresse] /t 1 /n 1
IF ERRORLEVEL 1 GOTO NoReply
IF ERRORLEVEL 0 GOTO StartApp
:StartApp
Start [Programnavn]
Goto EndScript
:NoReply
Echo No response from host.
Pause
:EndScript

Skrevet (endret)

Takker så meget!.

 

Fungerte utmerket.

 

aadnk scriptet ditt var noe helt annet en det jeg hadde forsøk, jeg var helt på bærtur :blush:

 

Hvordan få den til å søke etter både "reply from" og "svar fra"....

Har en med xp no og en med xp en :roll:

 

Takker igjen.

 

Edit: PS, er det mulig å tvinge fokus på et vindu med vbs....

Endret av Hagforce
Skrevet

Hvordan få den til å søke etter både "reply from" og "svar fra"....

Har en med xp no og en med xp en  :roll:

Såklart. Erstatt den første linjen i den siste IF-setningen med følgende:

If InStr(1, sOutput, "reply from", vbTextCompare) <> 0 Or _

    InStr(1, sOutput, "svar fra", vbTextCompare) <> 0 Then

 

Edit: PS, er det mulig å tvinge fokus på et vindu med vbs....

Bruk AppActivate:

oShell.AppActivate("Notepad") ' Endre notepad til tittel eller EXE-navn på programmet du ønsker å aktivere

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...