Client Socket Login

Guten Morgen,

ich möchte einen Client Socket zu meiner QNAP öffnen um dort dann Befehle abschicken zu können. Hauptsächlich geht es um einen shutdown über IPS.

Ich habe hierzu einen Client Socket auf die IP mit Port 23 angelegt (GUI). Dieser wird auch automatisch verbunden und es wird anschließend nach dem Login gefragt. Erfolgt nach 60 Sekunden keine Eingabe triggert der Timeout auf der QNAP, der Socket wird geschlossen und der Socket als fehlerhaft markiert. Anschließend wird er dann wieder automatisch geöffnet und nach 60 Sekunden wieder automatisch geschlossen, als fehlerhaft markiert usw.

Ich würde die Öffnung des Sockets also gerne selbst per getriggertem Skript öffnen und dann dort die Benutzerdaten übergeben.

Ist es A) möglich den Socket via Script zu öffnen und die Benutzerdaten bzw. <username> <ENTER> <Password> <ENTER> an den Socket zu schicken? Leider haben meine bisherigen Versuche über die GUI mit „Befehle“ testen (username.CHR(13).password.(CHR(13)) nicht funktioniert.

Vielen Dank.

Grüße

Ja, das ist problemlos möglich. Such mal ein wenig im Forum nach IPS_SetProperty, IPS_ApplyChanges, CSCK_SendText…

paresy

Hallo paresy,

Danke für den Hinweis. Ich habe es nun tatsächlich hinbekommen. Unten stehend meine beiden Skripte:


 	$user = BENUTZERNAME;
 	$pw = PASSWORT; 
 	$socket = 34900 

 	CSCK_SetOpen($socket,true); 
	IPS_ApplyChanges($socket);
	
	IPS_Sleep(1000);
	CSCK_SendText($socket,$user.chr(13));
	IPS_Sleep(1000);
	CSCK_SendText($socket,$pw.chr(13));
	IPS_Sleep(3000);
	IPS_RunScript(23374);
	IPS_Sleep(2000);
	CSCK_SetOpen($socket,false); 
	IPS_ApplyChanges($socket);
}

Das aufgerufene Skript (23374) macht dann noch den eigentlichen Shutdown


$socket = 34900;
@CSCK_SendText($socket,"poweroff".chr(13));

Johannes