sockets: UDP Paket über bestimmtes Network Interface senden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
danims
User
Beiträge: 29
Registriert: Montag 19. Februar 2007, 20:23
Wohnort: Bern, Schweiz

Dienstag 24. März 2009, 15:19

Hallo zusammen

Ich versuche verzweifelt, ein UDP-Paket zu verschicken, und zwar über ein spezifisches Netzwerk-Interface.

Ich kann problemlos UDP verschicken, solange der Empfänger an einer IP-Adresse ist, welche nicht auf dem Quellsystem (d.h. wo das Script aufgerufen wurde) ist.

Der relevante Teil meines codes sieht so aus:

Code: Alles auswählen

import socket
import binascii

msg = "meine nachricht..."

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(binascii.unhexlify(msg), ("10.10.0.70", 67))
Dabei führe ich dieses Script auf einem Server aus, der 10.10.0.70 sein Eigen nennt.

Das geht dann zum lo Interface, wie ich mit einem Netzwerksniffer herausgefunden habe.

Ich möchte also jetzt irgendwie erzwingen, dass das Päckchen bei eth0 ankommt.

PS: Ich frage damit einen DHCP Server an, und der erwartet Pakete auf dem eth0 Interface.

Kann mir jemand sagen, wie ich das bewerkstelligen kann?
tordmor
User
Beiträge: 100
Registriert: Donnerstag 20. November 2008, 10:29
Wohnort: Stuttgart

Dienstag 24. März 2009, 15:42

Für das routing ist das Betriebssystem zuständig und nicht python. Also keine Chance.
http://www.felix-benner.com
Benutzeravatar
danims
User
Beiträge: 29
Registriert: Montag 19. Februar 2007, 20:23
Wohnort: Bern, Schweiz

Dienstag 24. März 2009, 15:44

tordmor hat geschrieben:Für das routing ist das Betriebssystem zuständig und nicht python. Also keine Chance.
hab ich mir eigentlich auch gedacht, ja. das bestärkt mich nun meiner annahme. aber ich habe gedacht, eventuell kann ich auch etwas "innerhalb python" forcieren.

ok, danke für die hilfe.
Antworten