Socketprogramm



  • Servus...

    ich hoffe ich finde hier paar Leute die mir bei meinen Problem helfen können.
    Ich bin nicht so der Socketprogrammierer, aber ich muss eine Praktikumsaufgabe dazu lösen

    "Schreiben Sie ein Programm zur zufallsgesteuerten Erzeugung von IP-Adressen, die einen Eintrag im Domain-Name-System haben. Achten Sie dabei darauf, dass Sie das DNS nicht überlasten. Die Anzahl der Anfragen pro Sekunde sollte 10 nicht übersteigen. Weiterhin sollen IP-Adressen generell nicht in der Liste der erzeugten Adressen erscheinen, wenn es sich dabei um die so genannten Private-IP-Adressen bzw. um Multicast- oder Broadcast-Adressen handelt....
    ...zeilenweise auf STDOUT in folgendem Format ausgegeben werden: IP-Adresse DNS-Name (Beispiel: 141.56.132.68 irn68.informatik.htw-dresden.de)..."

    Okay der Prof hat uns eine Vorlage gegeben... einige Teilaufgaben konnt ich auch lösen... aber jetzt hängt es... ständig meckert der Compiler... ich weiß nicht wie ich die Addresse und den Namen von der DNS bekomme...

    gethostbyaddr in Verbindung mit htonl soll der Schlüssel zum Erfolg sein... ich bekomm es aber nicht fehlerfrei implementiert
    Ich füge mal die c Datei an... (wurde in VisualStudio erstellt)
    Bei "hier Ihr Code", ziemlich weit am Schluss... sind meine Probleme... man sieht es ja an den Kommentaren die ich erstellt habe
    // hp = gethostbyaddr ((char 😉 &addr, sizeof (addr), AF_INET); <-- weiß z.B. nicht, warum das nicht funktioniert ... aber seht selbst

    www.htw-dresden.de/~s53772/code.c

    Danke schonmal für Hilfe...



  • Was genau meckert den der Compiler? Das hast du uns verschwiegen und dabei ist doch gerade das so hilfreich...

    htonl ist für die Umrechnung:
    Dazu solltest du den Unterschied zwischen Big und Little Endian kennen.
    i386 CPUs speichern DWords (4Byte) nämlich anders ab, als bsp. PowerPC CPUs.
    Network Format ist immer im PowerPC Format.
    Der Host, das ist der Rechner auf dem es läuft.

    Die Funktionen erwarten das im Network Format, also musst du z.B. 4Bit IPs in das Network umwandeln. (Eben mit htonl).

    Soviel zur Funktion, den Compiler dürfte es aber eigentlich noch nicht stören, wenn das nicht gemacht wird.


Anmelden zum Antworten