Broadcast Udp Paket mit falscher Source IP

15/11/2007 - 14:08 von Mali Findik | Report spam
Hallo NG,

ich versende mit UpdClient ein Broadcast Paket, richtigerweise wird
dieser auf beiden Netzwerkkarten rausgesendet.

<Code>
UdpClient client = new UdpClient();
IPEndPoint remoteEndPoint new IPEndPoint(IPAdresse.Parse("255.255.255.255", 1234);
byte [] data = {(byte)12};
client.Send(data, sendData.Length, remoteEndPoint);
</Code>

Wenn ich mir mit einem Netzwerksniffer die Pakete anschaue, steht bei
beiden Paketen die Source IP auf der IP-Adresse der ersten Netzwerkkarte.

Bsp.:
Netzwerkkarte_1 = 192.168.0.1
Netzwerkkarte_2 = 10.1.0.1

Sniff ich bei der Netzwerkkarte_1 steht korrekterweise 192.168.0.1 als
Source IP (Absender IP), bei der Netzwerkkarte_2 aber auch 192.168.0.1 :(

Gibt es eine Möglichkeit dies programmatisch zu korrigieren, oder eine
Eigenschaft zu veràndern damit das richtig ist.

Vielleicht wàre ein Ansatz es über die Klasse Socket zu versenden?!

Ein recht herzliches Danke, schon im voraus.

Mali
 

Lesen sie die antworten

#1 Martin Rothschink
15/11/2007 - 16:42 | Warnen spam
Mali Findik wrote:
Hallo NG,

ich versende mit UpdClient ein Broadcast Paket, richtigerweise wird
dieser auf beiden Netzwerkkarten rausgesendet.



[...]
Wenn ich mir mit einem Netzwerksniffer die Pakete anschaue, steht bei
beiden Paketen die Source IP auf der IP-Adresse der ersten
Netzwerkkarte.



Das ist ein bekanntes Problem mit dem IP Stack in Windows.
Ich verwende hier bisher als Workaround folgendes Vorgehen:

1 Adapter -> Broadcast auf 255.255.255.255

Mehrere Adpater: Netzmaske ermitteln und den Broadcast für das jeweilige
Netz senden. Das funktioniert.
Beispiel 192.168.1.x, Maske 255.255.255.0, Broadcast auf 192.168.1.255

Gruß
Martin Rothschink

Ähnliche fragen