IP bestimmen und anzeigen
-
Moin,
ich weiß, dass zu diesem Thema schon sehr viele Berichte geschrieben wurden, aber bisher habe ich (auch mit Suche) nicht gefunden, was ich wollte.
Ich habe von c-worker.ch das tut befolgt. Da gibt es eine Funktion:
long getAddrFromString(char* hostnameOrIp, SOCKADDR_IN* addr) { long rc; unsigned long ip; HOSTENT* he; /* Parameter prüfen */ if(hostnameOrIp==NULL || addr==NULL) return SOCKET_ERROR; /* eine IP in hostnameOrIp ? */ ip=inet_addr(hostnameOrIp); /* bei einem fehler liefert inet_addr den Rückgabewert INADDR_NONE */ if(ip!=INADDR_NONE) { addr->sin_addr.s_addr=ip; return 0; } else { /* Hostname in hostnameOrIp auflösen */ he=gethostbyname(hostnameOrIp); if(he==NULL) { return SOCKET_ERROR; } else { /*die 4 Bytes der IP von he nach addr kopieren */ memcpy(&(addr->sin_addr),he->h_addr_list[0],4); } return 0; } }Die Parameter, die Übergeben werden sind argv[1] und ein SOCKADDR_IN namens addr.
Wie kann ich jetzt die bestimmte IP (die bei argv[1] angegeben ist) ausgeben?
Ich hoffe auf Hilfe,
Euer ItsNotYou
P.S.: Bitte mit Codebeispielen
-
Wenn du die IP schon in einen char-Array hast, wo ist dann dein Problem bei der Ausgabe
Oder suchst du inet_ntoa 
-
wenn ich schreibe
printf("%s\n", he->h_addr_list);oder
printf("%d.%d.%d.%d\n", he->h_addr_list[0], he->h_addr_list[1], he->h_addr_list[2], he->h_addr_list[3]);kommt nur Mist raus (bei localhost in argv[1]).
Ich verstehe nicht warum.
Und da liegt mein Problem...
-
MessageBox(NULL,inet_ntoa(addr.sin_addr),"",0);;