Nachdem ich einen Server errichtet habe, schickt der Client mir über Broadcast das erste Datenpaket - funktioniert einwandfrei.
Nun will der Client wissen, welche IP Adresse die Netzwerkkarte hat, an der er angeschlossen ist.
Momentan löse ich das mit einem Requester, mit dem man angeben kann, welche Netzwerkkarte verwendet werden soll.
Gibt es eine Möglichkeit, die IP Adresse der Netzwerkkarte herauszufinden, worüber der Client seine Daten gesendet hat ?
Also das Gegenstück zu GetClientIP() ?
Server IP Adresse nach ReceiveNetworkData() herausfinden ?
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
Ich befürchte, daß ich mich etwas unklar ausdrückte.
Der mit PB erstellte Server ist nicht TCP sondern UDP - er soll die eingehenden DHCP Messages analysieren.
Der Verlauf sieht so aus:
1. Der Client schickt ein DHCP Discover Paket über Broadcast zum Port 67 ( den UDP Server ).
2. Ich soll dem Client ein DHCP Offer Paket schicken, in dem die Server IP und die ( von mir bestimmte ) Client IP steht.
Nun weiß ich aber nicht, wie ich herausfinden soll, über welche meiner Netzwerkkarten die Verbindung zustandekommt - ich muß also immer manuell die Server IP Adresse angeben, welche ich im Netzwerkprotokoll TCP in Windows eingegeben habe.
Wieso er dieses Protokoll bei UDP überhaupt braucht, ist mir aber ein Rätsel - ohne ein aktiviertes TCP können jedenfalls keine Daten mit UDP über die Netzwerkkarte gesendet werden, obwohl die Verbindung bis zu dem Zeitpunkt nur über die beiden DHCP Ports läuft - die IP ist Broadcast.
Das Programm soll aber automatisch ermitteln, über welche meiner Karten der Client die Daten an den Server schickt. Also brauche ich, nachdem das erste Client Paket empfangen wurde, eine Funktion wie GetServerIP(), die es aber in PB nicht gibt - und die dafür notwendigen API Funktionen kenne ich nicht.
Der mit PB erstellte Server ist nicht TCP sondern UDP - er soll die eingehenden DHCP Messages analysieren.
Der Verlauf sieht so aus:
1. Der Client schickt ein DHCP Discover Paket über Broadcast zum Port 67 ( den UDP Server ).
2. Ich soll dem Client ein DHCP Offer Paket schicken, in dem die Server IP und die ( von mir bestimmte ) Client IP steht.
Nun weiß ich aber nicht, wie ich herausfinden soll, über welche meiner Netzwerkkarten die Verbindung zustandekommt - ich muß also immer manuell die Server IP Adresse angeben, welche ich im Netzwerkprotokoll TCP in Windows eingegeben habe.
Wieso er dieses Protokoll bei UDP überhaupt braucht, ist mir aber ein Rätsel - ohne ein aktiviertes TCP können jedenfalls keine Daten mit UDP über die Netzwerkkarte gesendet werden, obwohl die Verbindung bis zu dem Zeitpunkt nur über die beiden DHCP Ports läuft - die IP ist Broadcast.
Das Programm soll aber automatisch ermitteln, über welche meiner Karten der Client die Daten an den Server schickt. Also brauche ich, nachdem das erste Client Paket empfangen wurde, eine Funktion wie GetServerIP(), die es aber in PB nicht gibt - und die dafür notwendigen API Funktionen kenne ich nicht.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46