OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
K.I.T.T.
Beiträge: 104
Registriert: 14.11.2005 11:33:38

OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Beitrag von K.I.T.T. » 02.06.2008 12:16:54

Hallo.

"Kurze" Einleitung:
Ich bin heute mal zum Spaß in mein Speedport W701V (Linux gateway 2.6.13.1-ohio #1 Wed Jun 6 17:13:56 CEST 2007 mips unknown) eingedrungen.
Kein :hail: Debian System. Ich hoffe ihr könnt mir es verzeihen.

Nach etwas stöbern bin ich auf eine Ausführbare Datei Names /var/flash/calllog gestoßen. Die bei einem eingehenden Anruf mit Parameter $1 und $2 die Rufnummer und den interne Zielnummer übergibt.

Nun bin ich auf den verrückten Gedanken gekommen, ich könnte es doch an mein syslog via UDP auf meinem Debian System weiterleiten und es es über syslog-ng welches mir dann die Anrufinformation an mein Console weiterleitet (wie es schon mit meinem richtig VoIP-Telefon der Fall ist).

Ein syslogd Daemon selber hat die Anlage auch, aber er lässt sich nicht starten. Wie ich recherchiert habe gibt es dafür auch keine Lösung. Deshalb möchte ich ein UDP-Paket selber senden.


Meine Frage:
Wie kann ich mit einfachsten Mitteln ein UDP-Paket an eine IP senden?
Und welches Programme brauche ich evtl. dafür, welches (ich glaube es ist hier ein...) ARM-System laufen kann?


Die allerbesten Grüße und ein großes Danke im voraus

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Beitrag von gms » 03.06.2008 15:01:14

K.I.T.T. hat geschrieben: Wie kann ich mit einfachsten Mitteln ein UDP-Paket an eine IP senden?
Und welches Programme brauche ich evtl. dafür, welches (ich glaube es ist hier ein...) ARM-System laufen kann?
In der bash sollte ein

Code: Alles auswählen

echo "blabla" >/dev/udp/$host/$port
genügen ( $host und $port sind in diesem Kommando Bezeichnungen für Shellvariablen )

Gruß
gms

K.I.T.T.
Beiträge: 104
Registriert: 14.11.2005 11:33:38

Re: OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Beitrag von K.I.T.T. » 04.06.2008 11:57:50

Hi.

Danke für Deine Antwort. Das kannte ich noch gar nicht. Nun muss ich aber nachfragen:

Soviel ich in Erfahrung gebracht habe ist sowas davor noch von nöten:

Code: Alles auswählen

mknod /dev/tcp c 30 36
mknod /dev/udp c 30 39

Die Box hat hat leider folgendes,

Code: Alles auswählen

/dev/root on / type squashfs (ro)
werde wohl nicht so leicht an /dev kommen.


Aber trotzdem mich interessiert das nun etwas auch unter richtigen Debian.

Muss dazu noch ein Kernelmodul aktiviert werden?

Denn bei

Code: Alles auswählen

echo Hallo > /dev/tcp/localhost/12345
-bash: /dev/udp//: Is a directory

 echo Hallo > /dev/udp/localhost/12345
-bash: /dev/udp/localhost/12345: Not a directory
bekomme ich immer diese Fehlermeldungen :-(

Beste Grüß, Kitt

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Beitrag von cosmac » 04.06.2008 12:53:40

hi,

mit der bash aus dem "richtigen Debian" geht's absichtlich nicht:
'man bash' hat geschrieben: Bash handles several filenames specially when they are used in redirec-
tions, as described in the following table:
[...]
/dev/udp/host/port
If host is a valid hostname or Internet address, and port
is an integer port number or service name, bash attempts
to open a UDP connection to the corresponding socket.

NOTE: Bash, as packaged for Debian, does not support using the /dev/tcp
and /dev/udp files.
aber nett wär's schon...


netcat kann auch UDP-Päckchen von der Kommandozeile senden:

Code: Alles auswählen

echo "blabla" | netcat -q 0 -u $host 514
mit "-q 0" wartet netcat nicht auf weitere Zeilen nach blabla und
514 ist der syslog-Port. Genaugenommen gehört vor "blabla"
noch die facility und die priority, damit man alle Möglichkeiten in
syslogd.conf nutzen kann, aber ich finde die Kodierung jetzt nicht.

Damit der syslogd Meldungen von anderen Rechnern annimmt,
muss bei Debian /etc/default/syslogd angepasst werden.

Die Telefonnummer-Aufgabe könntest du auch ohne syslog lösen,
wenn du auf dem Desktop-Rechner ein netcat auf einem freien Port
lauschen lässt:

Code: Alles auswählen

netcat -u -l -p $port
Beware of programmers who carry screwdrivers.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: OT - Tel.-Anlage - UDP-Paket erzeugen und senden?

Beitrag von gms » 04.06.2008 17:37:32

cosmac hat geschrieben: mit der bash aus dem "richtigen Debian" geht's absichtlich nicht
danke, ich hatte das wieder völlig verschwitzt
K.I.T.T. hat geschrieben:Soviel ich in Erfahrung gebracht habe ist sowas davor noch von nöten:

Code: Alles auswählen

mknod /dev/tcp c 30 36
mknod /dev/udp c 30 39
nein
Wenn dieses Bash-Feature nicht ausgeschalten wurde, wird dieses Device von der Bash nur "simuliert" und muß daher nicht angelegt werden.
Das funktioniert ähnlich wie bei den Builtin-Commands, wenn du z.B in der Bash ein "echo" aufrufst, muß "/usr/bin/echo" auch nicht exisitieren.
Wenn dieses Feature abgeschaltet wurde, dann kommt die Fehlermeldung "No such file or directory" ( bzw "Datei oder Verzeichnis nicht gefunden" ) und wenn zusätzlich eine Devicenode "/dev/udp" erzeugt wurde, kommt dieser Fehler:
K.I.T.T. hat geschrieben:

Code: Alles auswählen

-bash: /dev/udp/localhost/12345: Not a directory
[/code]
"netcat" ist aber in jedem Fall eine gute Alternative

Gruß
gms

Antworten