Hi Alex,
Zitat von
gsh:
Zitat von
Assertor:
Mag sein, bin gerade am Arbeiten
Ich auch
Zitat von
gsh:
Zitat von
Assertor:
Als Problem sehe ich auch, daß Ethernet-Broadcast mit der Zieladresse 255.255.255.255 von Routern nicht weitergeleitet werden. Dann müßte man in Richtung Multicast gehen.
Das wäre nicht schlimm ... Aber dies könnte man auf einem "guten" Router auch weiterleiten.
Richtig, wobei man die Admins, die das machen mal über Netzwerk-Sicherheit informieren sollte - zumindest wenn über Netzwerkzonen hinweg der FF Multicast geroutet wird.
Zitat von
gsh:
Ok ich versuche es noch mal genau zu erklären:
Ich möchte das sich mein Programm selber im Netzwerk finden kann. In den meisten Fällen wird es wahrscheinlich in einer einfachen Netzwerk umgebung sein (Privates Netzwerk) wo alle Computer im gleichen Subnetz sind. Bei Firmen die das dann auch über größere Netzwerke legen wollen müssen halt die Router so konfigurieren das die diese Broadcasts durchlassen (Dies ist aber nicht mein Problem).
Zurzeit habe ich das Problem so gelöst:
Sobald mein Programm startet (und danach alle 5 min) sendet es einen UDP Broadcast an 255.255.255.255. Wenn auf einem anderen PC dieses Packet empfangen wird dann sendet dieser PC einen Unicast an den ersten PC. Danach wissen beide von einander und können dann später mit einander komunizieren. Die
IP Adresse von dem Gegenüber PC erhalten sie im Moment eben über die Source-
IP.
Das Konzept funktioniert auch super solange nur 1 Interface auf jedem Computer existiert. Sobald aber mehrere Interfaces und somit mehere Source
IP Adressen vorhanden sind gibt es eben die oben beschriebenen Probleme.
Ich hoffe du weißt jetzt was ich erreichen will.
Noch mal danke das du mir hilfst
Keine Ursache, ist ja auch ein interessantes Thema.
Die Erklärung macht jetzt einiges klar. Also prinzipiell bleiben zwei Möglichkeiten: Broadcast über alle lokalen Adapter (wie oben gesagt muß Du da leider selbst durch iterieren) oder aber eine manuelle Bindung.
Ich würde jetzt den Weg des geringsten Wiederstands gehen: Für den Fall, daß mehrere Adapter vorhanden sind, wird Deine Anwendung oder Anwendungsinstanz an einen Adapter gebunden (z.B. per
IP-Eingabe). So muß man es bei anderen Netzwerk-Tools auch häufig machen.
Wenn ich mir jetzt z.B. die UDP-Multicast-Pakete meines Netzwerkdrucks ansehe, sendet dieser auch im Multicast seine eigene
IP nochmals mit. Wahrscheinlich auch um dieses Problem einfach zu umgehen.
Oder Du schreibst in die Dokumentation, daß bei mehreren Adaptern im System die Priorität über die Source-
IP entscheidet, daher diese auch von den Clients per Route erreichbar sein muß.
Als Admin würde ich sowieso die betreffenden IPs der anderen Zielrechner im DNS hinterlegen, damit die Clients des anderen Subnetz immer wissen, wo sie diese über den Multiforwarder des Server erreichen können. Früher hat man das ja über die lmhosts etc gelöst.
Aber eine schönere Lösung fürs Programmieren sehe ich nicht. Ein Broadcast mit automatisch wechselnden Quell-IPs pro Adapter gibt es meines Wissens nach nicht.
Gruß Assertor