gethostbyname()



  • Hallo, ich habe eine Frage zu der Socket Funktion unter Unix, gethostbyname().
    Nämlich sucht diese Funktion schon nach dem Host?
    Wenn ja wie kann ich merken ob sie ihn nicht gefunden hat? Mit einem Rückgabewert?

    Danke schonmnal



  • Lern Unix benutzen.

    man gethostbyname
    

    Übrigens gibt's für Linux/Unix ein extra Unterforum.



  • .filmor schrieb:

    Lern Unix benutzen.

    man gethostbyname
    

    Übrigens gibt's für Linux/Unix ein extra Unterforum.

    👎
    extrem konstruktiv die antwort und auch linux-forum is hier fehl am platz

    zu deiner frage: eigentlich soll die funktion eine zeiger auf eine hostent struktur zurückgeben im fehlerfall, wie bei zeigern üblich, bekommst du einen null-pointer zurückgeliefert.

    PS:es wird übrigens empfohlen die beiden funktionen durch getaddrinfo() und gethostinfo() zu ersetzten (zumindest bei MS windows)



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • larz schrieb:

    linux-forum is hier fehl am platz

    Nein, durchaus nicht, das ist genau richtig. Und der Hinweis auf man: gethostbyname war auch nicht so schlecht.



  • Auch unter Linux soll man getaddrinfo und nicht mehr gethostbyname verwenden. Siehe zum Beispiel:

    http://udrepper.livejournal.com/16116.html



  • Ich habe diesen Beitrag jetzt mehrfach gelesen. Habe ihn auch in der FAQ gesehen und ich muss sagen, ich glaube ich stehe auf dem Schlauch. Helft mir bitte raus.

    gethostbyname liefert eine Struktur zurück welche einige Netzwerkinformationen enthält. Und so wie ich das verstanden habe zu irgendeinerdomain.de die man als Parameter dieser funktion übergibt. Dann werden die strukturen gefüllt.
    Das heißt die domain(oder auch uri...hoffentlich bringe ich nix mit meinem halbwissen durcheinander...) muss vorher bekannt sein!!!

    Und so wie ich die erste frage verstanden habe, wollte der Fragesteller wissen wie man den hostnamen rauskriegt auf der gerade das aktuelle Programm läuft.
    Jedenfalls ist das auch mein Ziel...und bevor ich einen neuen Thread aufmache...

    Grüsse Cordess



  • Ich habs...sry, für alle die es interessiert.

    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>    //liefert die funktion gethostname(..)
    #include <sys/param.h> //liefert die konstante MAXHOSTNAMELEN
    
    main()
    {
    	int my_return;
    	char my_hostname[MAXHOSTNAMELEN];//hier kommt dann der hostname rein
    	printf("\nanfang\n");
    	my_return = gethostname(my_hostname,MAXHOSTNAMELEN);//hostname beziehen, maxhostnamelen bestimmt die länge des arrays
    	printf("returnwert:%i \nhostname:%s",my_return,my_hostname);
    	printf("\nende\n");
    	return 0;
    }
    

    Damit lässt sich der hostname des rechners feststellen auf dem das programm läuft.....


Anmelden zum Antworten