function ResolveIP(HostName: string): string; {将域名解释成IP} type tAddr = array[0..100] of PInAddr; pAddr = ^tAddr; var I: Integer; WSA: TWSAData; PHE: PHostEnt; P: pAddr; begin Result := '';
WSAStartUp($101, WSA); try PHE := GetHostByName(pChar(HostName)); if (PHE <> nil) then begin P := pAddr(PHE^.h_addr_list); I := 0; while (P^[I] <> nil) do begin Result := (inet_nToa(P^[I]^)); Inc(I); end; end; except end; WSACleanUp; end;
function GetOS :TOSVersion; var OS :TOSVersionInfo; begin ZeroMemory(@OS,SizeOf(OS)); OS.dwOSVersionInfoSize:=SizeOf(OS); GetVersionEx(OS); Result:=osUnknown; if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then begin case OS.dwMajorVersion of 3: Result:=osNT3; 4: Result:=osNT4; 5: Result:=os2K; end; if (OS.dwMajorVersion=5) and (OS.dwMinorVersion=1) then Result:=osXP; end else begin if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0) then begin Result:=os95; if (Trim(OS.szCSDVersion)='B') then Result:=os95OSR2; end else if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then begin Result:=os98; if (Trim(OS.szCSDVersion)='A') then Result:=os98SE; end else if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then Result:=osME; end; end;
调用:procedure TForm1.Button1Click(Sender: TObject); var os:TosVersion; osVersion:string; begin os:=Getos; case OS of os95, os95OSR2: OSVersion:='Windows 95'; os98: OSVersion:='Windows 98'; os98SE: OSVersion:='Windows 98 第二版'; osME: OSVersion:='Windows Millenium Edition'; osNT3, osNT4: OSVersion:='Windows NT'; os2K: OSVersion:='Windows 2000'; osXP: OSVersion:='Windows XP'; end; showmessage(osversion); end; +++++++++++++++++++++++++++++++++++++++++++++++ 通过机器名得到IP地址
function nametoip(name:string):string; var WSAData: TWSAData; HostEnt: PHostEnt; begin result:=''; WSAStartup(2, WSAData); HostEnt := gethostbyname(PChar(name)); if HostEnt <> nil then begin with HostEnt^ do result:= Format('%d.%d.%d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]); end; WSACleanup; end;
通过IP地址得到机器名
function iptoname(ip:string):string; var WSAData:TWSAData; p:PHostEnt; InetAddr:dword; begin WSAStartup(2, WSAData); InetAddr:= inet_addr(PChar(IP)); try p:=GetHostByAddr(@InetAddr, Length(IP), PF_Inet); result:=p^.h_name; except result:=''; end; end; ++++++++++++++++++++++++++++++++++++++++++++++ 杀死一个进程