Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

IP-String in cmd-ping übergeben

Forumthread: IP-String in cmd-ping übergeben

IP-String in cmd-ping übergeben
29.08.2025 12:53:31
draiden87
Hallo zusammen! :)

Ich möchte in Excel VBA Pings an verschiedene IP-Adressen senden lassen. Dazu habe ich hier einen Beitrag ( https://www.herber.de/forum/archiv/1864to1868/1866474_Rueckgabe_von_CMD_Prog_ohne_Fenster.html ) aus 2022 gefunden, in dem folgender Code enthalten ist:



Sub GetProgOutput()
Dim oClip As Object

Set oClip = New DataObject
With CreateObject("WScript.Shell")
.Run "cmd /c ping localhost | clip", 0, True
oClip.GetFromClipboard
MsgBox oClip.GetText(1)
End With
End Sub


Jetzt möchte ich gern einen String, in dem eine IP-Adresse steht, an cmd übergeben, allerdings weiß ich nicht wie. :/ Euch schon mal ein schönes Wochenende!

lG
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IP-String in cmd-ping übergeben
29.08.2025 13:41:40
Ulf
Hi
Public Function getIPResponse(ByVal strIP As String) As String

Dim strCMD As String
Dim oClip As Object
strCMD = "cmd /c ping " & strIP & " | clip"
Set oClip = New DataObject
With CreateObject("WScript.Shell")
'.Run "cmd /c ping localhost | clip", 0, True
.Run strCMD, 0, True
oClip.GetFromClipboard
getIPResponse = oClip.GetText(1)
End With
End Function


Public Sub test()
Debug.Print getIPResponse("8.8.8.8")
End Sub

hth
Ulf
Anzeige
Hier noch eine Version,...
29.08.2025 19:47:47
Case
Moin, :-)

... mit der du über CreateObject("htmlfile"... auf das Clipboard zugreifst (über tracert kannst du dir auch die Route ausgeben lassen): ;-)

Option Explicit

Public Sub Main_1()
Call Main_2("8.8.8.8") ' für ping
'Call Main_2("www.wikihow.com") ' mit Domainname
'Call Main_2("8.8.8.8", 2) ' für tracert
End Sub
Public Sub Main_2(ByVal strTMP As String, Optional lngPOT As Long = 1)
Dim strOutput() As String
Dim strWhat As String
If lngPOT = 2 Then strWhat = "tracert" Else strWhat = "ping"
CreateObject("WScript.Shell").Run "cmd /c " & strWhat & " " & strTMP & " | clip", 0, True
strOutput = Split(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"), vbCrLf)
ThisWorkbook.Worksheets("POT").Cells(1).Resize(UBound(strOutput) + 1) = Application.Transpose(strOutput)
End Sub


Habe auch noch eine Version, wo du die Parameter (z. B. -c für die ECHO_REQUESTs) von Ping Optional vorgeben kannst. ;-)

Servus
Case
Anzeige
AW: IP-String in cmd-ping übergeben
29.08.2025 15:10:41
JoWE
Hallo Ulf,
welcher Verweis ist zu setzen?
Gruß
Jochen
AW: IP-String in cmd-ping übergeben
29.08.2025 15:40:50
Ulf
Hi,
MSForms Userform dazu und löschen tut's.
hth
Ulf
AW: IP-String in cmd-ping übergeben
29.08.2025 17:00:05
volti
Hallo zusammen,

es ginge auch ohne Verweis....
Public Function getIPResponse(ByVal strIP As String) As String

With CreateObject("WScript.Shell")
.Run "cmd /c ping " & strIP & " | clip", 0, True
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.GetFromClipboard
getIPResponse = .GetText(1)
End With
End With
End Function


Public Sub test()
Debug.Print getIPResponse("8.18.18.8")
End Sub


Gruß
Karl-Heinz
Anzeige
AW: IP-String in cmd-ping übergeben
29.08.2025 16:16:39
JoWE
o je hatte ich lediglich nicht angehakt, klappt prima

Forumthreads zu verwandten Themen

Anzeige