Mittels Python eine Telnet Nachricht senden

  • Hey Leute,

    ich bin auf der suche nach der Möglichkeit mittels Python ein Telnetverbindung aufbauen und dann Daten an einen Telnetserver zu senden. Ich weiß Telnet ist eigentlich nicht mehr ganz Stand der Dinge, aber es geht um nichts Großes. Ich möchte eigentlich nur einen Steuerbefehl an ein Arduinoboard mit Ethernet-Shield senden, welches dann ein Relais kurz anziehen lassen soll, also "Tasten".

    Hab in einem Arduino Forum ein Beitrag gestellt für die gegenseite, also den Arduino. Hier kurz der Link:

    https://forum.arduino.cc/index.php?topic=458250.new#new

    Ich weiß nur in dem Zusammenhang nicht, ob es klappt, was ich vor habe, wenn der Raspberry Pi den Telnet Server "stellt" und so Daten an den Arduino sendet oder ob der Arduino den Telnet Server zur Verfügung stellen.

    Vielleicht kann mir da jemand helfen.


    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.

    :angel: :wallbash:


  • Ich weiß Telnet ist eigentlich nicht mehr ganz Stand der Dinge, ...

    Naja, statt telnetd könntest Du auch telnetd-ssl verwenden:

    Code
    :~ $ apt-cache policy telnetd-ssl
    telnetd-ssl:
     Installed: 0.17.24+0.1-24
     Candidate: 0.17.24+0.1-24
     Version table:
    *** 0.17.24+0.1-24 0
           500 http://mirrordirector.raspbian.org/raspbian/ jessie/main armhf Packages
           100 /var/lib/dpkg/status


    und die Zeile in der "/etc/inetd.conf" ergänzen/ändern, z. B. so:

    Code
    telnet stream tcp nowait telnetd-ssl /usr/sbin/tcpd /usr/sbin/in.telnetd -z ssl,cipher=HIGH:!aNULL:@STRENGTH:!SSLv3,secure


    Wenn Du einen anderen Port, statt 23 verwenden willst, dann in dieser Zeile "telnet" durch den anderen Port ersetzen.

    Die Verbindung mit dem telnet-ssl-Client, wird dann z. B. so aufgebaut:

    Code
    telnet-ssl -z ssl <IP-Adresse> <Port>   # wenn der Port nicht 23 ist.


    telnet-ssl-Client:

    Code
    :~ $ apt-cache policy telnet-ssl
    telnet-ssl:
     Installed: (none)
     Candidate: 0.17.24+0.1-24
     Version table:
        0.17.24+0.1-24 0
           500 http://mirrordirector.raspbian.org/raspbian/ jessie/main armhf Packages
    Code
    ssl         Negotiate SSL at first, then use telnet protocol. In this mode telnetd only accepts connections from SSL                      enhanced telnet with option -z ssl
    Code
    secure      Don't switch back to unencrypted mode (no SSL) if SSL is not available.
    Zitat


    Advantages over normal telnet: Your passwords and the data you send
    will not go in cleartext over the line. Nobody can get it with
    tcpdump or similar tools.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (25. Februar 2017 um 09:39)

  • Danke schonmal für die Nette Info. Nur bei meiner Überlegung soll ein Pythonscript gestartet werden, in dem zuerst ein Steuerbefehl an den Arduino gesendet wird und mit einer Verzögerung soll die Steckdose (über ein Finder Relais was schon funktioniert) abgeschalten werden. Und halt beim Einschalten entgegen gesetzt. Also erst erst Strom an, dann Steuerbefehl an Arduino und alles ist wieder an.

    Es geht im Allgemeinen um eine Anlage, bei der ich den Eintaster "abfangen" möchte und Prallel zu dem ein Relais einbauen möchte. Also das das Relais den "tastimpuls" auslöst und nicht der Taster. Kurz um, ich möchte eine bisschen in die JAhre gekommene Anlage etwas "Smarter" machen.

    Oder gibt es ggf. eine "bessere" Alternative als Telnet für diesen Zweck? Weil mir würde es reichen, "Impuls 1 senden" und darauf Schaltet das Arduino den Ausgang 1 für eine Sekunde ein. Also ohne Rückmeldung und sowas.


    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.

    :angel: :wallbash:

    Einmal editiert, zuletzt von RaspiDo (25. Februar 2017 um 09:52)


  • Oder gibt es ggf. eine "bessere" Alternative als Telnet für diesen Zweck?

    Evtl. mit socat. Siehe z. B. die Bescheibung in der Ausgabe von:

    Code
    apt-cache show socat

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]> [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Oder gibt es ggf. eine "bessere" Alternative als Telnet für diesen Zweck?[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Es geht sogar sehr einfach:[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Code fuer einen UDP_Server (müsste auf dem Arduino portiert werden)[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Und ein passender Client[/font]

    Wahrscheinlich nicht die endgueltige Loesung, aber so als Idee ;)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!