versuche verzweifelt über GetPerAdapterInfo die Info's
der konfigurierten DNS Server einer Netzwerkkarte zu kriegen
leider habe ich kein erfolg
anbei ein link zur funktion MSDN:
http://msdn.microsoft.com/en-us/library ... S.85).aspx
und meinen nicht funktionierenden beispiel:
Code: Alles auswählen
Structure IP_ADDR_STRING
pNext.l
IpAddress.b[16]
IpMask.b[16]
Context.l
EndStructure
#MAX_ADAPTER_NAME_LENGTH=256
#MAX_ADAPTER_DESCRIPTION_LENGTH=128
#MAX_ADAPTER_ADDRESS_LENGTH=8
Structure IP_ADAPTER_INFO
pNext.l
ComboIndex.l
AdapterName.b[#MAX_ADAPTER_NAME_LENGTH+4]
Description.b[#MAX_ADAPTER_DESCRIPTION_LENGTH+4]
AddressLength.l
Address.b[#MAX_ADAPTER_ADDRESS_LENGTH]
Index.l
Type.l
DhcpEnabled.l
CurrentIpAddressPTR.l
IpAddressList.IP_ADDR_STRING
GatewayList.IP_ADDR_STRING
DhcpServer.IP_ADDR_STRING
HaveWins.l
PrimaryWinsServer.IP_ADDR_STRING
SecondaryWinsServer.IP_ADDR_STRING
LeaseObtained.l
LeaseExpires.l
EndStructure
Structure IP_PER_ADAPTER_INFO
AutoconfigEnabled.b; UINT
AutoconfigActive.b
CurrentDnsServer.IP_ADDR_STRING
DnsServerList.IP_ADDR_STRING
EndStructure
Procedure GetDNSInfo(Index.l)
length.l=0
Result=GetPerAdapterInfo_(Index,0,@length) ; Get the length for Buffer
If Result=#ERROR_BUFFER_OVERFLOW And length
*Buffer=AllocateMemory(length)
If *Buffer And GetPerAdapterInfo_(Index,*Buffer,@length)=#ERROR_SUCCESS
*ipinfo.IP_PER_ADAPTER_INFO=*Buffer
Debug *ipinfo\AutoconfigEnabled
Debug *ipinfo\AutoconfigActive
*iplist.IP_ADDR_STRING=*ipinfo\DnsServerList
While *iplist
Debug PeekS(@*iplist\IpAddress);,-1,#PB_Ascii)
*iplist.IP_ADDR_STRING=*iplist\pNext
Wend
EndIf
If *Buffer
FreeMemory(*Buffer)
EndIf
EndIf
EndProcedure
Procedure GetAdaptersID()
length.l=0
Result=GetAdaptersInfo_(0,@length) ; Get the length for Buffer
If Result=#ERROR_BUFFER_OVERFLOW And length
*Buffer=AllocateMemory(length)
If *Buffer And GetAdaptersInfo_(*Buffer,@length)=#ERROR_SUCCESS
*ipinfo.IP_ADAPTER_INFO=*Buffer
While *ipinfo
Debug "---------------------------------"
Debug "Index : "+Str(*ipinfo\Index)
GetDNSInfo(*ipinfo\Index)
*ipinfo.IP_ADAPTER_INFO=*ipinfo\pNext
Wend
Else
Debug "GetLastError="+Str(GetLastError_())
EndIf
If *Buffer
FreeMemory(*Buffer)
EndIf
EndIf
EndProcedure
GetAdaptersID()
Ciao
jpd