Guten Morgen,
ich versuche momentan alle Nameserver eines Interfaces auszulesen. Das ganz natürlich nur in C und NICHT in C++.
Da ich schon Stundenlang danach suche wollte ich einfach mal hier fragen.
Vielleicht hat das schonmal jemand gemacht und kann mir direkt helfen
Gruß, postal
Announcement
Collapse
No announcement yet.
Nameserver auslesen in C
Collapse
X
-
Nameserver auslesen in C
-
Hier die Lösung:
Code:void get_nameserver(computer_t *computer) { FIXED_INFO *pFixedInfo = NULL; ULONG ulOutBufLen = 0; IP_ADDR_STRING *pIPAddr = NULL; pFixedInfo = malloc(sizeof (FIXED_INFO)); ulOutBufLen = sizeof (FIXED_INFO); if(GetNetworkParams(pFixedInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) { free(pFixedInfo); pFixedInfo = malloc(ulOutBufLen); } int nameserverCount = 0; if(GetNetworkParams(pFixedInfo, &ulOutBufLen) == NO_ERROR) { computer->network->nameservers = realloc(computer->network->nameservers, nameserverCount + 2); computer->network->nameservers[nameserverCount] = strdup(pFixedInfo->DnsServerList.IpAddress.String); computer->network->nameservers[++nameserverCount] = NULL; pIPAddr = pFixedInfo->DnsServerList.Next; while (pIPAddr) { computer->network->nameservers = realloc(computer->network->nameservers, nameserverCount + 2); computer->network->nameservers[nameserverCount] = strdup(pIPAddr->IpAddress.String); computer->network->nameservers[++nameserverCount] = NULL; pIPAddr = pIPAddr->Next; } } free(pFixedInfo); }
Gruß, postal
Leave a comment: