Querying+the+DNS

//by Richard Russell, October 2013//

The code below allows you to query the DNS to find the IP address(es) corresponding to a specified URL:

code format="bb4w" SYS "LoadLibrary", "dnsapi.dll" TO dnsapi% SYS "GetProcAddress", dnsapi%, "DnsQuery_A" TO `DnsQuery` SYS "GetProcAddress", dnsapi%, "DnsRecordListFree" TO `DnsRecordListFree` DIM dnsr{pNext%, pName%, wType{l&,h&}, wDataLength{l&,h&}, dwFlags%, \ \       dwTtl%, dwReserved%, dwData%} query$ = "www.google.com" SYS `DnsQuery`, query$, 1, 1, 0, dnsr{}, 0 rr% = dnsr.pNext% WHILE dnsr.pNext% !(^dnsr{}+4) = dnsr.pNext% PRINT $$dnsr.pName% " ", FNipaddr$(dnsr.dwData%) ENDWHILE SYS `DnsRecordListFree`, rr%, 0 SYS "FreeLibrary", dnsapi% PRINT "done" END DEF FNipaddr$(addr%) = STR$(addr% AND 255) + "." + STR$(addr% >>> 8 AND 255) + "." + \     \ STR$(addr% >>> 16 AND 255) + "." + STR$(addr% >>> 24 AND 255) code