下面例子来源于网上,但在Delphi 2010+Win7 64位中不能得到正确结果,经研究需要进行以下修改:
(1)在 AdapterName : Array[0..MAX_ADAPTER_NAME_LENGTH+3] of AnsiChar;
Description : Array[0..MAX_ADAPTER_DESCRIPTION_LENGTH+3] of AnsiChar;改成AnsiChar后,AdapterName和Description正常了。
(2)更彻底的修改方法:
包含:Iptypes
注释以下内容:
//MAX_HOSTNAME_LEN = 128; { from IPTYPES.H }
{MAX_DOMAIN_NAME_LEN = 128;
MAX_SCOPE_ID_LEN = 256;
MAX_ADAPTER_NAME_LENGTH = 256;
MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
MAX_ADAPTER_ADDRESS_LENGTH = 8; }
//Type
//TIPAddressString = Array[0..4*4-1] of Char;
{PIPAddrString = ^TIPAddrString;
TIPAddrString = Record
Next : PIPAddrString;
IPAddress : TIPAddressString;
IPMask : TIPAddressString;
Context : Integer;
End; }
{PFixedInfo = ^TFixedInfo;
TFixedInfo = Record { FIXED_INFO }
{HostName : Array[0..MAX_HOSTNAME_LEN+3] of Char;
DomainName : Array[0..MAX_DOMAIN_NAME_LEN+3] of Char;
CurrentDNSServer : PIPAddrString;
DNSServerList : TIPAddrString;
NodeType : Integer;
ScopeId : Array[0..MAX_SCOPE_ID_LEN+3] of Char;
EnableRouting : Integer;
EnableProxy : Integer;
EnableDNS : Integer;
End;
{PIPAdapterInfo = ^TIPAdapterInfo;
TIPAdapterInfo = Record { IP_ADAPTER_INFO }
{Next : PIPAdapterInfo;
ComboIndex : Integer;
AdapterName : Array[0..MAX_ADAPTER_NAME_LENGTH+3] of Char;
Description : Array[0..MAX_ADAPTER_DESCRIPTION_LENGTH+3] of Char;
AddressLength : Integer;
Address : Array[1..MAX_ADAPTER_ADDRESS_LENGTH] of Byte;
Index : Integer;
_Type : Integer;
DHCPEnabled : Integer;
CurrentIPAddress : PIPAddrString;
IPAddressList : TIPAddrString;
GatewayList : TIPAddrString;
DHCPServer : TIPAddrString;
HaveWINS : Bool;
PrimaryWINSServer : TIPAddrString;
SecondaryWINSServer : TIPAddrString;
LeaseObtained : Integer;
LeaseExpires : Integer;
End; }
源程序参考:https://www.cnblogs.com/zhangzhifeng/archive/2012/06/06/2537661.html