DNS konfiguration einer Netzwerkkarte abfragen.
Verfasst: 04.12.2008 23:12
Hi Leute,
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:
hoffe das jemand weiterhelfen kann.
Ciao
jpd
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