PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie krieg ich den DNS Domainname raus in c oder c++



cypromis
28-03-2006, 22:58
Also, ich portier mir gerade nen Ast an mehreren Anwendungen von Linux auf Solaris und bin nun endlich auf die getdomainnmae madness gestossen. Laut Definition ist der Rueckgabewert von getdomainname() die NIS Domain, oder wenn keine NIS Domain besteht, die DNS Domain und dies sowohl auf Solaris wie auch auf allen anderen Posix konformen Platformen, wie zBsp. Linux. Ich such mich seit Tagen bloed wie ich nun eindeutig den DNS Domainnamen einer Maschine innerhalb meines Programmes bestimmen kann und rauf mir nur noch die Haare. Hat jemand eine idee, code oder irgendetwas was mich aus dieser Misere befreien koennte ?

SeeksTheMoon
29-03-2006, 08:02
klappt das denn nicht?


int main() {
char* domain;
int len = 30;
int retval = 0;
domain = malloc(sizeof(char)*len);
retval = getdomainname(domain, len);
printf("Retval: %d, Domain: %s\n",retval,domain);
}

Bei mir ist die Ausgabe zwar "Retval: 0, Domain: (none)", aber eigentlich müsste das so gehen.
Notfalls kannste ja gethostbyname() und gethostbyaddr() benutzen und daraus die Domain erhalten, indem Du alles bis zum ersten Punkt im Namen rauswirfst.