delphi 获取内网所有IP地址  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 获取内网所有IP地址


Const
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;

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;
End;

 Function GetAdaptersInfo(AI : PIPAdapterInfo; Var BufLen : Integer) : Integer; StdCall; External 'iphlpapi.dll' Name 'GetAdaptersInfo';

function GetLocalIP():string;
  Function GetAddrString(Addr : PIPAddrString) : String;
  Begin
      Result := ''; 
      While (Addr <> nil) do Begin
        Result := Result+Addr^.IPAddress+#13;
        Addr := Addr^.Next;
      End;
  End;
var
  AI,Work : PIPAdapterInfo;
  Size    : Integer;
  Res     : Integer;
  temps   :string;
begin
 Size := 5120;
 GetMem(AI,Size);
 work:=ai;
 Res := GetAdaptersInfo(AI,Size);
 If (Res <> ERROR_SUCCESS) Then halt;
 repeat
    temps:=GetAddrString(@Work^.IPAddressList);
    if temps <> '0.0.0.0'+#13 then result:=result+temps+'/';
    work:=work^.Next ;
 until (work=nil);
 if copy(result,length(result),length(result)-1) = '/' then delete(result,length(result),length(result)-1);
end;

//showmessage(GetLocalIP);


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.20778107643127 seconds