Hallo.
Ich habe ein kleines Nebenprojekt bei einem größeren Projekt von mir (Ein RAT in Python [ein rein zur legalen Nutzung konzipiertes so wie TeamViewer als Shell und ein bisschen Tkinter GUI]).
Dieses Projekt ist ein relativ unkomplizierter und leicht verwendbarer / einbaubarer TCP Server. (So "out of the box" mäßig)
Meint Ihr, dass so ein Projekt einen Sinn ergäbe und andere Programmierer weiterbringen würde?
Achja, zur besseren Bildung einer Meinung ein paar specs des Servers:
- Jeder Client bekommt eine ID (9 chars) zugewiesen, welche SHA512 gehasht wird. Von dieser Hashsum werden die ersten 16 Zeichen als Schlüssel für seine Datenpakete genutzt. [Diese sind btw. AES256 verschlüsselt]
- Bei einer Verbindung wird diese ID in ein Dictionary gelegt. Nach Kontrolle des Clients wird dieser zu einer Klasse welche Funktionen enthält,
welche einen einfachen Umgang mit dem Client ermöglichen (z.B. sendfile,recvfile,send,recv,suicide) und als seine ID im dict "clients" saved.
- Infos zum Client (IP,Zeit der Verbindung) werden in einem anderen dict unter dessen ID gespeichert
- Im 5 Sekunden-Takt wird erkannt, ob ein Client disconnected ist. Dieser wird dann aus den "Datenbanken" entfernt.
- Einfacher Start oder einfache Integration in eure Projekte:
x = adv_tcp_server(127.0.0.1,443,256 [256 ist das Userlimit],False [Userlimit],False [GUI-Mode])
x.standalone = True # Als nicht integrierter Server (nützlich für Dateitransfer etc.)
x.host() # Erstellt Socket
x.handle() # Nimmt ab Aufruf Clients an
x = adv_tcp_server(127.0.0.1,443,256 [256 ist das Userlimit], gui=False)
x.host()
x.handle()
SO: Wie findet ihr das Konzept? Verbesserungsvorschläge? Oder ganz lassen?
Simpler aber kraftvoller TCP Server zur Integration in andere Projekte
@tomba: Was bedeutet denn „krafvoll“ im Kontext eines TCP-Servers?
Warum eine 9-Zeichen-ID hashen und dann 75% des Ergebnisses wegwerfen? Wenn man 128 Bits zum identifizieren braucht, warum dann nicht einfach eine UUID erzeugen?
Warum selber verschlüsseln statt ein SSL-Socket zu erstellen?
Warum eine 9-Zeichen-ID hashen und dann 75% des Ergebnisses wegwerfen? Wenn man 128 Bits zum identifizieren braucht, warum dann nicht einfach eine UUID erzeugen?
Warum selber verschlüsseln statt ein SSL-Socket zu erstellen?
Danke für die Antwort erstmal. Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .
(Obige zeile: truth = line0.replace("kann","koennen soll"))
Warum nicht einfach SSL: Will mir offen halten, die Verschlüsselung bspw. für große Dateien abschaltbar zu integrieren.
//edit Noch zu der anderen Frage: weil ich mit dem ID System schon recht lange so arbeite und das gut funktioniert. Ich meine, ob ich jetzt 9 Zeichen vom ID hash nehme, oder direkt die ID ist eigentlich egal.
(Obige zeile: truth = line0.replace("kann","koennen soll"))
Warum nicht einfach SSL: Will mir offen halten, die Verschlüsselung bspw. für große Dateien abschaltbar zu integrieren.
//edit Noch zu der anderen Frage: weil ich mit dem ID System schon recht lange so arbeite und das gut funktioniert. Ich meine, ob ich jetzt 9 Zeichen vom ID hash nehme, oder direkt die ID ist eigentlich egal.
Zuletzt geändert von tomba am Donnerstag 17. Dezember 2015, 19:14, insgesamt 1-mal geändert.
Science makes you fly to the moon, religion makes you fly into buildings.
Wie wär's mit "leistungsstark" / "leistungsfähig"?tomba hat geschrieben:Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .
Ja, das wäre wohl eine bessere/angebrachtere Übersetzung gewesen ^ Da oben ist eine richtige Quote-Ceptionsnafu hat geschrieben:Wie wär's mit "leistungsstark" / "leistungsfähig"?tomba hat geschrieben:Mit kraftvoll ist gemeint, dass er recht viele Clients ziemlich effektiv handlen und viele Funktionen bieten kann (mein Gott, ich wollte "powerful" übersetzen xD) .
Science makes you fly to the moon, religion makes you fly into buildings.