根据计算机名得到IP地址的函数:
uses
WinSock;function GetIPByName(AName: String): 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 := '';
StrPCopy(Buffer, AName);
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;用法:
Ipstr := GetIPByName(ComputerName);
uses
WinSock;function GetIPByName(AName: String): 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 := '';
StrPCopy(Buffer, AName);
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;用法:
Ipstr := GetIPByName(ComputerName);
解决方案 »
- 怎么获取子控件的子控件获得和失去焦点的消息?
- 如何取CXGRID的行数?
- 晕,这里有没有做通信接口的
- 表示16进制数
- 我用一个表存放当前的最大单据编号,怎样做得一个人读取该记录时不让别人读取啊,否则就会编号重复了。
- 请问DELPHI怎么把WORD文档导入到本地的PARADOX数据库啊???
- 调用intraweb开发的网页时,如何不显示参数.
- 有人知道那里可以找到专门介绍DHLPHI5.0的函数和属性、事件、方法的电子文档?
- 怎么加密字符串呀!!!要举个例子!!
- ISAPI/NSAPI 的开发
- Str字符如何转成Char??
- 如何才能动态指定副索引(没主索引),而且能对记录进行修改与增删;或是又能够对table排序,而且记录的所有字段下内容可重复(主索引字段不可重复,所以不能用主索引)。愿给50分,因怕无人能答,所以先不下分,请见谅。
请问你是怎样知道这些函数和类型的,看书吗?
我是菜鸟?还望指教!
我的E_Mail:[email protected]
function BrowseForComputer(const winhandle : THANDLE; const Title : string) : string;
var
BrowseInfo: TBrowseInfo;
IDRoot: PItemIDList;
Path:array[0..MAX_PATH] of Char; //被选择的计算机名
S:String;
MyHost:PHostEnt;
I:byte;
begin
S:='';
SHGetSpecialFolderLocation(winHandle, CSIDL_NETWORK , IDRoot);//获取网上邻居ID列表
ZeroMemory(@BrowseInfo, SizeOf(TBrowseInfo)); //内存清零
ZeroMemory(@path[1], MAX_PATH); //内存清零
BrowseInfo.hwndOwner := winhandle;
BrowseInfo.pidlRoot := IDRoot;
BrowseInfo.lpszTitle := PChar(Title);
BrowseInfo.pszDisplayName := @path;
BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER;//or BIF_RETURNONLYFSDIRS
if SHBrowseForFolder(BrowseInfo)=nil then Exit;
{***以下根据计算机名获取IP地址***}
MyHost:=GetHostByName(@Path[0]);
if MyHost=nil then S:='该计算机已关闭' else
for I:=1 to 4 do S:=S+IntToStr(Ord(MyHost.h_addr^[I-1]))+'.';
Result:=Copy(S,1,Length(S)-1);
end;