+ if fixed_info = nil then begin\r
+ //2000 and up method not supported. use the 9x or NT 4 method.\r
+ nameserver := '';\r
+ reg := TRegistry.Create();\r
+ reg.RootKey := HKEY_LOCAL_MACHINE;\r
+ //9x\r
+ if not reg.OpenKey('\System\CurrentControlSet\Services\VxD\MSTCP',false) then\r
+ //NT\r
+ if not reg.OpenKey('\System\CurrentControlSet\Services\Tcpip\Parameters',false) then begin\r
+ reg.destroy;\r
+ exit;\r
+ end;\r
+\r
+ nameserver := reg.ReadString('NameServer');\r
+ //DhcpNameServer is actually only set on NT\r
+ if (nameserver = '') then nameserver := reg.ReadString('DhcpNameServer');\r
+\r
+ reg.destroy;\r
+\r
+ //parse as comma separated list\r
+ repeat\r
+ if (nameserver = '') then exit; //done\r
+ a := pos(',',nameserver);\r
+ if (a > 1) then begin\r
+ s := copy(nameserver,1,a-1);\r
+ nameserver := copy(nameserver,a+1,9999);\r
+ end else begin\r
+ s := nameserver;\r
+ nameserver := '';\r
+ end;\r
+ s := trim(s);\r
+ ip := ipstrtobinf(s);\r
+ if (ip.family <> 0) then biniplist_add(result,ip);\r
+ until false;\r
+ end;\r