{$else}\r
 \r
 uses\r
-  sysutils,windows,winsock,dnssync;\r
+  sysutils,windows,winsock,dnssync,dnscore;\r
 \r
 {the following code's purpose is to determine what IP windows would come from, to reach an IP\r
 it can be abused to find if there's any global v6 IPs on a local interface}\r
 var\r
   a:integer;\r
   ip:tbinip;\r
+  usewindnstemp:boolean;\r
 begin\r
+  {this lookup must always be done with the windows API lookup\r
+  setting usewindns to false on windows will fail with infinite recursion}\r
+  usewindnstemp := usewindns;\r
+  usewindns := true;\r
   result := forwardlookuplist('',0);\r
+  usewindns := usewindnstemp;\r
 \r
   {$ifdef ipv6}\r
 \r