www.pudn.com > QQ_FACE.rar > by_user.pas


unit by_user; 
 
interface 
 
uses 
   SysUtils, Winsock,Dialogs,ShellAPI; 
 
function GetLocalIP:string; 
function GetGBIP(sIP:string):string; 
function Deltree(MyDir:string):boolean; 
 
implementation 
 
//获取广播地址 
function GetGBIP(sIP:string):string; 
var 
   aIPAddr:array[1..4] of string; 
   i,iPos:integer; 
begin 
   sIP:=Trim(sIP); 
   for i:=1 to 3 do 
   begin 
      iPos:=Pos('.',sIP); 
      aIPAddr[i]:=copy(sIP,1,iPos-1); 
      Delete(sIP,1,iPos); 
   end; 
   aIPAddr[4]:=sIP; 
 
   case StrToInt(aIPAddr[1]) of 
     1..126:   Result:=aIPAddr[1]+'.255.255.255'; 
     128..191: Result:=aIPAddr[1]+'.'+aIPAddr[2]+'.255.255'; 
     192..254: Result:=aIPAddr[1]+'.'+aIPAddr[2]+'.'+aIPAddr[3]+'.255'; 
   else 
     Result:='127.0.0.1'; 
   end; 
end; 
 
//获取本机IP 
function GetLocalIP : string; 
type 
    TaPInAddr = array [0..10] of PInAddr; 
    PaPInAddr = ^TaPInAddr; 
var 
    phe  : PHostEnt; 
    pptr : PaPInAddr; 
    Buffer : array [0..63] of char; 
    I    : Integer; 
    GInitData      : TWSADATA; 
begin 
    WSAStartup($101, GInitData); 
    Result := ''; 
    GetHostName(Buffer, SizeOf(Buffer)); 
    phe :=GetHostByName(buffer); 
    if phe = nil then Exit; 
    pptr := PaPInAddr(Phe^.h_addr_list); 
    I := 0; 
    while pptr^[I] <> nil do begin 
      result:=StrPas(inet_ntoa(pptr^[I]^)); 
      Inc(I); 
    end; 
    WSACleanup; 
end; 
 
//删除临时目录 
function Deltree(MyDir:string):boolean; 
Var 
  T:TSHFileOpStruct; 
begin 
  Result:=True; 
  With T do 
  Begin 
    Wnd:=0; 
    wFunc:=FO_DELETE; 
    pFrom:=Pchar(MyDir); 
    pTo:=nil; 
    fFlags:=FOF_SILENT+FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息 
    hNameMappings:=nil; 
    lpszProgressTitle:='正在删除文件夹'; 
    fAnyOperationsAborted:=False; 
  End; 
  SHFileOperation(T); 
end; 
 
 
end.