Sockets: Lokale IP Adresse des Servers rausfinden
-
Hallo,
Ich schreibe hier einen TFTP-Server (UDP) mithilfe von Winsock standard Sockets (Typ SOCK_DGRAM).
Der Server sitzt auf einem bestimten port, mit INADDR_ANY und wartet auf anfragen.
Und da will ich die lokale Adresse wissen, zu der sich die Clients verbunden haben.
(Natürlich gibt es einfache Möglichkeiten die lokale(n) Host-Adressen rauszubekommen, aber ich weiss dann nicht auf welcher der Server hockt im Falle von mehreren!)
Es müsste aber doch gehen, und zwar mit getsockname, zumindest nachdem ich vom Client was bekommen habe (recvfrom).
Aber leider ist die Adresse die gethostname liefert danach immer noch 0.0.0.0 !
Wer kann helfen?(Umgebung ist wie gesagt Winsock2 unter Win32, aber die socket-API ist ja einigermassen plattformübergreifend)
-
Mal anders gefragt:
Gibt es irgendne Möglichkeit mit der Socket-API (oder sonstwie?) an den IP Header der empfangenen Pakete zu kommen?? Weil da steht ja die Information drin die ich brauche. Nur ich komm nicht ran.
-
afaik geht das nur mit raw-sockets.
Hier gibt es ein Beispiel wie das aussehen kann.
-
Aber leider ist die Adresse die gethostname liefert danach immer noch 0.0.0.0 !
Und was für eine Ausgabe erwartest du?
-
Ok, ist wohl normal dass sich die Socket-Adresse nicht ändert, da es sich ja immer noch um den gleichen Socket handelt, zu dem man sich auch weiterhin über andere lokale IP Adressen verbinden könnte.