通过IP获得计算机名

pl5th2001 2002-12-16 08:59:52
在网上找了一些,都不好用,或者干脆是错的,有没有好用的,大家帮帮忙,给点好用的代码
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanxing 2002-12-17
  • 打赏
  • 举报
回复
api 是不是应用编程接口啊???
liuhelin 2002-12-17
  • 打赏
  • 举报
回复
{=================================================================
功 能: 返回本机的局域网Ip地址
参 数: 无
返回值: 成功: True, 并填充LocalIp 失败: False
备 注:
版 本:
1.0 2002/10/02 21:05:00
=================================================================}
function GetLocalIP(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(buffer);
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;

如果得到别的机器的只需要
function GetLocalIP(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
HostEnt := GetHostByName('machinename');
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;
就行了
jwboyR 2002-12-17
  • 打赏
  • 举报
回复
gethostbyname();
stevenpeng 2002-12-17
  • 打赏
  • 举报
回复
API函数
xiaozhanger 2002-12-17
  • 打赏
  • 举报
回复
就是gethostbyname()
siyu2002 2002-12-17
  • 打赏
  • 举报
回复
有个gethostbyaddr函数好像可以做到,返回一个结构体能获的计算机名
用法记不太清了,你查一下MSDN

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧