渴望漂泊的人惟一不飘的是那颗心.

Delphi编写获取内网IP,外网IP,网关及网卡MAC地址

上一篇 / 下一篇  2006-09-09 16:26:20 / 天气: 晴朗 / 心情: 平静 / 个人分类:Delphi编程

Unit1;
'tZA#[~{}1r0
,I,k5s Z$N ]B0interface
[(KNFz"hy0
!{$jc;Rz{;ni t2NR0uses★黑基空间★b `Si2{a nAN u5yo%{
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
*?6pz)@%}0  Dialogs, StdCtrls;
+anG,e:w*R0Const
!bN;Y C;gF0  MAX_ADAPTER_NAME_LENGTH        = 256;
hE'^o,\m7n(T0  MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
b,ta6S3Q*^~b&_$aq8h*i0  MAX_ADAPTER_ADDRESS_LENGTH     = 8;★黑基空间★&P Q6u&\K4oM R}
type★黑基空间★x6{9ra Z S
  TForm1 = class(TForm)★黑基空间★Q;g e(Lq"rBM
    Button1: TButton;★黑基空间★ bV Y-KR J-]:K@
    Memo1: TMemo;
_#me"f ?7yfl0    procedure Button1Click(Sender: TObject);★黑基空间★C[[t P{k
  private
9M@:P?R Bw0toa0    { Private declarations }★黑基空间★;j)jBWm-qp
  public★黑基空间★A |t2Kq1I!~
    { Public declarations }
T2N F%AN2@ k0  end;
a1O?,`l0p2p0Type
)V(EF e&}&{'Q%E vs0  TIPAddressString = Array[0..4*4-1] of Char;
|'h9ae j`0
z2WGrP3j U0  PIPAddrString = ^TIPAddrString;★黑基空间★&_"W }T5Q5v@
  TIPAddrString = Record
8wVYD-d+Zm0c0    Next      : PIPAddrString;
K1Lj-a4Jl ?0    IPAddress : TIPAddressString;
)vKi*H Ya)u4?0    IPMask    : TIPAddressString;★黑基空间★ s&@1P fn~@
    Context   : Integer;
R g\Ie]8e0  End;
8Q#Ls~CG?.VJC |0
PC)kqRCw,R4^j,Rp0
7thb iFXbLu3n0PIPAdapterInfo = ^TIPAdapterInfo;
+@vo y D!d#m0  TIPAdapterInfo = Record { IP_ADAPTER_INFO }★黑基空间★&] V6^ S/x+W2Q3CI
    Next                : PIPAdapterInfo;
SOfh@4y7R6W#v0    ComboIndex          : Integer;★黑基空间★9Rb)R)n,{5m.WO@
    AdapterName         : Array[0..MAX_ADAPTER_NAME_LENGTH+3] of Char;★黑基空间★ ~WV'J!b,AZ(yq6s H
    Description         : Array[0..MAX_ADAPTER_DESCRIPTION_LENGTH+3] of Char;★黑基空间★R t/\:a e W
    AddressLength       : Integer;★黑基空间★TOL|~na,T0@ ~
    Address             : Array[1..MAX_ADAPTER_ADDRESS_LENGTH] of Byte;
g0QuPIvP$j0    Index               : Integer;
'ha*[Fe#e%}'W*X0    _Type               : Integer;
$e7u&]"yr(kc1b)o9V3eU0    DHCPEnabled         : Integer;
Ba$`QZ*b0    CurrentIPAddress    : PIPAddrString;★黑基空间★;X&b\J ?
    IPAddressList       : TIPAddrString;★黑基空间★%~'Y3\t l s;}z$_)W
    GatewayList         : TIPAddrString;★黑基空间★?,uJ+go V@i3d
  End;
x6hs ~nv2c0var
-pl,a,o9?3jnP6j0  Form1: TForm1;
Cm p*@'Rw0★黑基空间★:A.x-dGGi}
implementation★黑基空间★;B^Og8h]
★黑基空间★[&egyRQ ^{/@x
{$R *.dfm}
'SS(p6Q"}(l;Hp V&X0Function GetAdaptersInfo(AI : PIPAdapterInfo; Var BufLen : Integer) : Integer;
x4\ h5ZaYUs0         StdCall; External 'iphlpapi.dll' Name 'GetAdaptersInfo';
@z7C)S(Hp3Tv0★黑基空间★B4|9jF9csD7^)C
Function MACToStr(ByteArr : PByte; Len : Integer) : String;★黑基空间★:B'l5y&B yc t)Np
  Begin★黑基空间★h?M zz~ Q*eW
    Result := '';
r r;n-s)[!z]5j8O_0    While (Len > 0) do Begin
'y]6~+]x|FUn0      Result := Result+IntToHex(ByteArr^,2)+'-';
f9x%PM S `!f7g0      ByteArr := Pointer(Integer(ByteArr)+SizeOf(Byte));
!z2z9K)RSG`0      Dec(Len);
0nOG.\1D0    End;
*x{+v#k+z0    SetLength(Result,Length(Result)-1); { remove last dash }
e%ZD1A|wwf&n$l0End;★黑基空间★wy I-E9}K8X]

O5gruAb'g0Function GetAddrString(Addr : PIPAddrString) : String;★黑基空间★g4A\y#Nb*c0{0}
  Begin
d8aK$\6Qr2\0    Result := '';★黑基空间★/J&d(p,OFs"d
    While (Addr <> nil) do Begin
BdshGp0      Result := Result+'A: '+Addr^.IPAddress+' M: '+Addr^.IPMask+#13;★黑基空间★R|e _5s'g^+tO~
      Addr := Addr^.Next;★黑基空间★y"N,JjXd(z1sE
    End;★黑基空间★{5rc2l.J$|
  End;★黑基空间★}l,a"z)d.\"]V
★黑基空间★qB-]r;]9o
procedure TForm1.Button1Click(Sender: TObject);★黑基空间★7XAg7| y8} H k
var
%}KV.Xq`;j(@K0  AI,Work : PIPAdapterInfo;
qX4ETI.F[0  Size    : Integer;
:f~-Y(Q&R | j0  Res     : Integer;
t-MFi&b9Yf/@)Z4E0begin★黑基空间★[/j5TN(_Wl6g
  Size := 5120;★黑基空间★(h#yM |@
  GetMem(AI,Size);★黑基空间★ V tuv2jU
  work:=ai;
(B _U8FAr a1e+u0  Res := GetAdaptersInfo(AI,Size);
OZC Eo/V0  If (Res <> ERROR_SUCCESS) Then Begin★黑基空间★?7N \3Elh/N
    SetLastError(Res);★黑基空间★b7l `$jbD
    RaiseLastWin32Error;
X!hI+g9^0  End;★黑基空间★(w]{(]!g9m:X4?J(P
  memo1.Lines.Add ('Adapter address: '+MACToStr(@Work^.Address,Work^.AddressLength));
HpCK^~|a+KT0  repeat★黑基空间★)@ P?B-Lq E"x!W
    memo1.Lines.add('  IP addresses: '+GetAddrString(@Work^.IPAddressList));★黑基空间★)H sr.Y'UR(V#z'|6s
    work:=work^.Next ;
B(D8t)}.`osaj0  until (work=nil);
(C9]SA mWrxU ?0end;
H1e;n0`+D8k:B}2g:?0
#e~ n` VMB0end.★黑基空间★Z {@ q6oc

相关阅读:

TAG: 电脑网络 Delphi编程

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-02  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 25895606
  • 日志数: 8
  • 书签数: 1
  • 建立时间: 2006-08-23
  • 更新时间: 2006-09-10

RSS订阅

Open Toolbar