PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : netzwerkprogrammierung



johnpatcher
31-12-2003, 13:06
hi, mir ist mal die idee gekommen für mein linuxrechner ein kleines webinterface zu schreiben, also dass man neustarten kann, ausschalten, usw. natülich könnte ich auch ssh benutzen, jedoch soll es nur ein kleines versuchsprojekt sein! also wie ich eine verbindung zu einem rechner aufbaue weiß ich ja, doch wie kann ich zB den befehl "init 0" zum ausschalten schicken? und welchen port sollte ich verwenden?

dank im voraus an alle die an antworten

johnpatcher

@all: einen guten rutsch ins neue jahr wünsche ich euch allen!

Stanislaus
31-12-2003, 13:48
Ähhmm.. wie soll das ganze ablaufen?

Erste Möglichkeit:
Du hast also ein Webinterface, über das Du die Maschine, auf der der Webserver läuft runterfahren möchtest? Wenn ja einfach shutown/init 0 o.ä. per system() aufrufen.

Zweite Möglichkeit:
Du willst, daß der Webserver sich mit einer anderen Maschine verbindet und diese dann runterfährt? Das würde ich mir nämlich hier raus zusammenreimen

also wie ich eine verbindung zu einem rechner aufbaue weiß ich ja, doch wie kann ich zB den befehl "init 0" zum ausschalten schicken? und welchen port sollte ich verwenden?
Auf der runterzufahrenden Maschinen muss natürlich ein Dienst laufen, der die Anfragen des Webservers entgegennimmt.
Würde dann in etwa so ablaufen.
Client meldet Webserver, daß doch bitteschön die Maschine XY runtergefahren werden soll. Der Webserver (bzw: PHP) baut nun eine Verbindung zur Maschine XY bzw. zum entsprechenden Dienst (der damit auch den Port festlegt) und meldet ihm, daß er sich gefälligst runterfahren soll. Der Dienst wiedderum setzt dann das shutdown ins System ab.

Oder wolltest Du noch was anderes?

johnpatcher
31-12-2003, 14:19
das ist mir schon klar und ich habe mir überlegt, dass ich ja ssh benutzen könnte, also dass ich ne verbindung zur linuxmaschine auf dem ssh port öffne! doch meine frage ist wie kann ich einen sshbefehl zur linuxmaschine schicken! mit nem ssh clienten ist das ja kein prob!

also auf deutsch:

ich will mir einen ssh clienten mit "oberfläche" zambasteln. also das man ein knopf drückt und die maschine fährt zb herunter!

johnpatcher

sixfriends
31-12-2003, 14:45
Wie wäre es ganz einfach:
Du schreibst irgendein Batch Script, das die Verbindung über ein vorhandenes ssh Prog herstellt und lässt das dann deine Befehle ausführen.

Mit graphischer Oberfläche könnte man auch einen Knopf so programmieren, dass er beim Anklicken das ausführt, was das Batch Script gemacht hätte (per Zugriff auf die Programme des Clients)

EDIT: Natürlich müsstest du deine Befehle an das ssh Prog tunneln, hab ich noch vergessen :rolleyes:

Ist es das, was du wolltest? :confused:

sixfriends

johnpatcher
31-12-2003, 15:16
dann müsste aber auf dem pc den ich zum zb abschalten benutzen will ein ssh client drauf sein! ich will es ohne schaffen! ich glaube ich werde sudo benutzen, den ssh ist ein sehr komplexes protokoll

johnpatcher

Gaert
31-12-2003, 16:39
Hab mir den Thread jetzt nicht vollständig durchgelesen (Silvesterstress), aber wenn dir SSH zu kompliziert ist, dann nimm doch Telnet!

johnpatcher
02-01-2004, 14:25
also ich danke dir für deine antwort, doch telnet ist auch kompliziert! ssh ist ja nur noch mal verschlüsselt, aber im grunde auf telnet "aufgebaut"! also wird mir telnet auch ein bissl zu kompliziert sein ...! ich nehm einfach sudo!!

johnpatcher

Stanislaus
02-01-2004, 14:52
dann müsste aber auf dem pc den ich zum zb abschalten benutzen will ein ssh client drauf sein! ich will es ohne schaffen! ich glaube ich werde sudo benutzen, den ssh ist ein sehr komplexes protokoll
SSH müsste dann auf der Maschine vorhanden sein, auf der der Webserver läuft.
Wie Du es drehts und wendest; Auf der auzuschaltenden Maschine muss nunmal ein Dienst laufen, der Die Anfrage entgegennimmt. Wenn ssh/telnet ausscheiden bleibt Dir ja nicht viel mehr übrig als selber einen Dienst zu schreiben.
Sudo wird Dir meines Wissens an der Stelle nicht weiterhelfen können, da es keinen Dienst bereitstellt, der einen Remote-Zugriff ermöglicht sondern lediglich auf der entsprechende Maschine "normalen" Benutzern die Möglichkeit bietet "besondere" Kommandos auszuführen. (oder sollte ich da etwas verpasst haben?)

Sudo wirst Du lediglich benötigen, um dem Dienst, der die Anfragen entgegennimmt, Zugriff auf "shutdown" zu ermöglichen.

Bis neulich ...

johnpatcher
02-01-2004, 15:36
mal ne frage: was für ein dienst benutzt den mldonkey? ich glaube kaum das mldonkey ssh oder telnet benutzt!

johnpatcher

Stanislaus
02-01-2004, 16:49
Der mldonkey benutzt keinen Dienst der mldonkey ist quasi ein Dienst.
Welches Protokoll (falls Du das meinst) der nutzt weiß ich nicht.

Bis neulich ...

johnpatcher
02-01-2004, 19:17
ist mldonkey opensource? also dass ich mir das protokoll nehmen und verwenden darf? oder mach ich mich damit strafbar?

johnpatcher

Gaert
02-01-2004, 19:30
MLDonkey ist ein ganz normaler Socket Server... das Protokoll ist ganz simpel.
Telnet funktioniert im übrigen genauso... probiers einfach mal aus.
Einfach eine Socket Verbindung auf Port 22 Öffnen.

Stanislaus
02-01-2004, 21:24
Wie Gaert schon sagte, ein kleiner Socket Server ist nix jeckes.
Wie Du Dir in C/C++ so ein Teil selber basteln kannst steht in jedem guten C/++ Buch.
Oder z.B. hier http://www.weltadministrator.de/Programmieren/programmieren.html
google spuckt dazu ettliche Informationen aus.

Und ja mldonkey ist OpenSource aber afaik in einer recht außergewöhnlichen Sprache geschrieben. ocaml oder so ähnlich.

Bis neulich ...

Gaert
02-01-2004, 23:14
Hallo!

Auch mit PHP lassen sich wunderbar Server Programmieren (das wissen die meisten Leute nicht). Kleines Tutorial: http://www.devshed.com/Server_Side/PHP/SocketProgramming

Ich hab auch vor längerem mal eine SocketServer Klasse geschrieben - müsste ich aber jetzt erstmal suchen - bei Interesse könnt ihr mir ne PM schreiben.