(Text-) Nachricht über Netzwerk verschicken und auf GUI anzeigen

G

Gast123

Hallo Leute,

ich suche nach einer Möglichkeit, eine Nachricht über das Netzwerk an mehrere PCs zu senden und diese auf dem Bildschirm anzuzeigen.
Im speziellen geht es bei den PCs um solche, die als GUI Gnome 2 haben (CentOS 6.4).
Falls kein benutzer angemeldet ist, soll die Nachricht in einem Fenster auf dem loginbildschirm angezeigt werden.
Falls ein Benutzer angemeldet ist, auf dessen Desktopsession.

Ich habe bisher nur mit notify-send herumgespielt, was allergings nicht übers Netzwerk (nicht einmal aus leiner lokalen Subshell heraus) funktioniert.

Kennt jemand existierende Programme, die o.g. bewerkstelligen, oder hat jemand einen Tipp, wie ich ein eigenes Programm basteln kann?

MfG

Schard
 
Hallo


Google mal nach talk, sowie wall in Verbindung mit Linux .

mfg
schwedenmann
 
Moin,

nicht schön aber selten und wahrscheinlich gefährlich:
Code:
client.py:

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5005
MESSAGE = "Hello, World!"

print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))

Code:
server.py:

import socket
import os

UDP_IP = "127.0.0.1"
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
    print "received message:", data
    send_msg = "export DISPLAY=:0.0 ; /usr/bin/notify-send -t 0 \"netmsg\" \"" + data + "\""
    os.system(send_msg)

Mehr dazu findest du in der Pyhton Wiki.

Gefährlich deshalb weil der String der empfangen wird einfach über "os.system()" ausgeführt wird, ohne zu überprüfen was darin steht.

Getestet mit einem Ubuntu12.04, allerdings landet so noch keine Nachricht auf dem Loginscreen zumindest nicht wenn einfach nur die Sitzung gesperrt ist.

mfg
HeadCrash
 
KNotify sollte auch unter Gnome funktionieren. Da kannst du theoretisch eine Nachricht auf eine DBus-Session senden und diese wird von knotify angezeigt. Ggf. musst du bei Gnome während des Startens dafür sorgen dass eine DBus-Session angelegt wird. Hab Gnome noch nie wirklich genutzt und weiss daher nicht ob dbus da mitläuft.
 
Danke erstmal für euren Input.
Ich werde wahrscheinlich erstmal die Lösung mit einem Python-basierten Client / Server Modell versuchen. Wahrscheinlich dann in Kombination mit scapy.
Melde mich dann wieder, wenn es funktioniert. :-)
 
Zurück
Oben