citroendsvier
Goto Top

VBScript: TCP Verbindung aufbauen und Netzwerkpaket senden

Hallo zusammen,

ich suche eine Möglichkeit, in VBS eine TCP Verbindung zu einem anderen PC (lokales Netzwerk) aufzubauen und ihm ein Paket zu senden, auf das er "listen"t. Im Internet und auch in der Microsoft Script Documentation findet man dazu herzlich wenig. Daher meine Frage: Wie kann ich eine Verbindung zwischen den beiden PCs aufbauen und schließlich Pakete senden?

Ich bin für jede Hilfe dankbar!

LG DS4

Content-ID: 250273

Url: https://administrator.de/contentid/250273

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

108012
108012 26.09.2014 um 21:52:12 Uhr
Goto Top
Hallo,

 On Error Resume Next

PingAddress = "192.168.1.2"  
ShellCommandToRun = "ping -n 2 -w 1000 " & PingAddress  

Set objShell = CreateObject("WScript.Shell")  
Set objExec = objShell.Exec(ShellCommandToRun)

strPingResults = LCase(objExec.StdOut.ReadAll)
If InStr(strPingResults, "reply from") > 0 or InStr(strPingResults, "antwort von") > 0 Then     'deutsche und englische Systeme beachten  
	WScript.Echo PingAddress & " ist erreichbar via PING."  
Else
	WScript.Echo PingAddress & " ist NICHT erreichbar via PING."  
End If

Set objShell = Nothing 
Set objExec = Nothing 

WScript.Quit (0)


Gruß
Dobby
citroendsvier
citroendsvier 26.09.2014 um 21:58:34 Uhr
Goto Top
Hallo,

vielen Dank für deine Mühe, ich suche jedoch keine Ping-Möglichkeit, sondern möchte ein Paket mit selbst definiertem Inhalt senden, auf das der Empfänger wartet (listen't). Vielmehr reichen mir die Befehle bzw. Objekte.

MfG, DS4
colinardo
Lösung colinardo 26.09.2014, aktualisiert am 29.09.2014 um 14:28:06 Uhr
Goto Top
Hallo DS4,
wenn du mit deiner Frage meinst das du auf Socketebene arbeiten willst, ist die Antwort: Nativ ohne Zusatztools nur mit VBS eigenen Mitteln geht dies nicht, du benötigst dafür z.B. eine eigene COM Bibliothek, oder eine kommerzielle wie die von Chilkat (Beispielcode). Um Pakete an Webserver zu schicken gibt es das MSXML2.XMLHTTP Objekt.
Eine Antwort die es auf den Punkt bringt ist diese:
http://stackoverflow.com/questions/6348907/vbscript-jscript-networking- ...

Ich würde dir aber eine richtige Programmiersprache dafür empfehlen. Alternativ lässt sich das auch ziemlich schnell und einfach mit AutoIT, NodeJS, PHP, Java etc. machen...die Auswahl ist da fast grenzenlos. Pures VBS ist in dieser Hinsicht einfach sehr beschränkt fähig ohne Zusatzmittel.

Grüße Uwe
108012
108012 26.09.2014 um 22:03:40 Uhr
Goto Top
sondern möchte ein Paket mit selbst definiertem Inhalt senden,
ok das sollte schon möglich sein.

auf das der Empfänger wartet (listen't).
Das wiederum ist so nicht möglich es sei denn das Server OS, eine Dienst oder ein Programm
sind so konfiguriert worden das es darauf "wartet" (auf das Paket).

Gruß
Dobby
citroendsvier
citroendsvier 26.09.2014 um 22:33:14 Uhr
Goto Top
Das warten ist für mich nicht unbedingt nötig, ich dachte dabei an das TCP Protokoll. Wichtig ist nur, dass der Empfänger darauf reagieren kann.
108012
108012 26.09.2014 um 22:38:40 Uhr
Goto Top
listen = horchen
Also das Server OS, ein Programm oder ein Dienst müssen schon im "listen" mode sein
und somit auf ein Paket warten was dann interpretiert wird um etwas auszulösen und/oder
etwas zu unternehmen.

Wenn niemand auf das Paket wartet oder es interpretieren bzw. umsetzen kann,
dann kannst Du recht viele Pakete senden, nur es passiert dann eben auch nichts!

Gruß
Dobby
citroendsvier
citroendsvier 26.09.2014 aktualisiert um 22:52:47 Uhr
Goto Top
Genau das waren meine ersten Gedanken. face-smile
citroendsvier
citroendsvier 26.09.2014 aktualisiert um 22:58:24 Uhr
Goto Top
EDIT: @colinardo

Hallo,

an so eine COM Bibliothek o.ä. könnte ich nehmen, aber ich sehen an dem Chillkat Beispielcode keinen Sinn (sofern ich ihn verstanden habe), bzw. lese nur MaxReadIdleMs...

Mit freundlichen Grüßen
colinardo
Lösung colinardo 26.09.2014, aktualisiert am 29.09.2014 um 14:27:56 Uhr
Goto Top
Zitat von @citroendsvier:

EDIT: @colinardo
an so eine COM Bibliothek o.ä. könnte ich nehmen, aber ich sehen an dem Chillkat Beispielcode keinen Sinn (sofern ich
ihn verstanden habe), bzw. lese nur MaxReadIdleMs...
Wofür gibt es wohl API-Referenzen ...
http://www.chilkatsoft.com/refdoc/xChilkatSocketRef.html
Hier die passenden Funktionen für den Sendevorgang nach dem Connect.
AsyncSendString()
AsyncSendBytes()
AsyncSendByteData()

was und an was du senden willst, wissen wir ja nicht ...
citroendsvier
citroendsvier 29.09.2014 um 14:05:53 Uhr
Goto Top
Ah, danke face-smile
Was ich senden will, weiß ich selber nicht, nur eben eine Mitteilung (Text relativ Schnuppe, sollte aber mehrere Möglichkeiten haben, für verschiedene Fälle). Das Packet soll an eine lokale IP gehen.

Vielen Dank! Muss ich die Chilkat Bibliothek "installieren", oder was muss ich vorher tun, damit die Bibliothek implementiert ist? Ist das der "Chilkat ActiveX Download für win 32/64 bit"?
colinardo
colinardo 29.09.2014 um 14:15:42 Uhr
Goto Top
Zitat von @citroendsvier:
Vielen Dank! Muss ich die Chilkat Bibliothek "installieren", oder was muss ich vorher tun, damit die Bibliothek
implementiert ist? Ist das der "Chilkat ActiveX Download für win 32/64 bit"?
http://www.chilkatsoft.com/downloads_ActiveX.asp
citroendsvier
citroendsvier 29.09.2014 um 14:27:37 Uhr
Goto Top
Danke, hab ich dann auch gesehen...

Vielen Dank für die Ideen, konnte sie noch nicht ausprobieren, werde mich aber jetzt dahinterklemmen!

MfG, DS4