Man kan få komponenter til det... Om de er gratis det ved jeg ikke... Prøv bare at søge på Google på "delphi dns" (uden ")... Men hvis det skal være "Pure code" så kan jeg ikke hjælpe dig ;-)
Jeg har svært ved at se hvad du skal med adressen på DNS serveren. Du kan sagtens lave DNS opslag uden at kende DNS serverens adressse hvis det er det der er problemet?
Du kan ikke lave DNS opslag uden en DNS server, men du behøver ikke nødvendigvis at kende adressen. Jeg har strikket lidt kode sammen som kan slå IP'er og hostnames op:
function GetHostFromIP(sIPAddress: string): string; var WSAData: TWSAData; addr : Cardinal; lpHost: PHostEnt; begin Result := ''; if WSAStartup(MakeWord(1,0), WSAData) = 0 then begin addr := inet_addr(PChar(sIPAddress)); lpHost := GetHostByAddr(@addr, sizeof(addr), AF_INET); if lpHost <> nil then Result := StrPas(lpHost^.h_name) else Result := sIPAddress; WSACleanup; end; end;
function GetIPFromHost(sHostname: string): string; var WSAData: TWSAData; lpHost: PHostEnt; begin Result := ''; if WSAStartup(MakeWord(1,0), WSAData) = 0 then begin lpHost := GetHostByName(PChar(sHostname)); if lpHost <> nil then begin Result := StrPas(inet_ntoa(PInAddr(lpHost^.h_addr^)^)); end else Result := sHostname; WSACleanup; end; end;
Er det fordi du selv vil slå MX recorden op eller hvad er vi ude i? Har du i øvrigt overvejet at bruge nogen af Indy komponenterne? De har en række mail komponenter som jeg skulle mene kunne finde ud af at slå den rigtige MX op.
Ellers må GetAdaptersAddresses() være vejen frem hvis du selv vil klare det. Den er godt nok ikke defineret i Delphi men det kan der jo laves om på :o) Den virker kun på Windows 2000 og fremefter. Ellers må den eneste udvej være regdb'en.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.