本文整理自网络,侵删。
unit Unit_Lan;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, RegularExpressions,ShellAPI,WinSock,StrUtils;
function GetLanIPlist: string; //获取局域网所有IP
implementation
function GetLanIPlist: string; //获取局域网所有IPvarhReadPipe,hWritePipe:THandle;si:STARTUPINFO;lsa:SECURITY_ATTRIBUTES;pi:PROCESS_INFORMATION;mDosScreen:String;cchReadBuffer:DWORD;ph:PansiChar;fname:PChar;i,j:integer;getinfo:string;///////////////////////////str,TEMP,ip:string;K:Integer;///////////////////////////beginfname:=allocmem(255);ph:=AllocMem(5000);lsa.nLength :=sizeof(SECURITY_ATTRIBUTES);lsa.lpSecurityDescriptor :=nil;lsa.bInheritHandle :=True;trytryif CreatePipe(hReadPipe,hWritePipe,@lsa,0)=false thenbeginShowMessage('Can not create pipe!');exit;end;fillchar(si,sizeof(STARTUPINFO),0);si.cb :=sizeof(STARTUPINFO);si.dwFlags :=(STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW);si.wShowWindow :=SW_HIDE;si.hStdOutput :=hWritePipe;StrPCopy(fname,'arp -a');
if CreateProcess( nil, fname, nil, nil, true, 0, nil, nil, si, pi) = False thenbeginShowMessage('can not create process');FreeMem(ph);FreeMem(fname);Exit;end;
while(true) dobegin
if not PeekNamedPipe(hReadPipe,ph,1,@cchReadBuffer,nil,nil) then break;if cchReadBuffer<>0 thenbegin
if ReadFile(hReadPipe,ph^,4096,cchReadBuffer,nil)=false then break;ph[cchReadbuffer]:=chr(0);if ph<>'' then Result :=ph;
//getinfo:=ph;//getinfo:=StringReplace (getinfo, '接口:', '本机IP', []);//Memo1.Lines.Add(getinfo);endelse if(WaitForSingleObject(pi.hProcess ,0)=WAIT_OBJECT_0) then break;Application.ProcessMessages;Sleep(100);end;ph[cchReadBuffer]:=chr(0);if ph<>'' then Result :=ph;
CloseHandle(hReadPipe);CloseHandle(pi.hThread);CloseHandle(pi.hProcess);CloseHandle(hWritePipe);FreeMem(ph);FreeMem(fname);
exceptend;finallyend;
end;
end.
相关阅读 >>
Delphi中datetimepicker控件同时输入日期和时间
Delphi实现获取文件及文件夹大小(支持超过2g的大文件)
Delphi实现使用tidhttp控件向https地址post请求
在Delphi xe2和xe3开发的程序中加入管理员权限申请
Delphi application.restore; 简单用法
更多相关阅读请进入《Delphi》频道 >>