通过地址取得计算机名的问题,有兴趣的请过来看。

Marl 2003-10-17 09:16:09
我的代码如下。(我查了一下,有和我编写代码差不多的问题)。
问题是这个函数代码在实际运行是不对的,我也不知道为什么。
请看我的错误注解。 附代码如下:
function TFSock.GetComputerNameByIPAddr(IPAddr: string): string;
var
strComName:string;
pHE: PHostEnt;
sAddr:TSockAddr;
Err:DWord;
begin

sAddr.sin_addr.S_addr := inet_addr(PChar(IPAddr));

pHE := nil;
pHE := GetHostByAddr(@sAddr.sin_addr.S_addr,sizeof(sAddr.sin_addr.S_addr),PF_INET);
Err := WSAGetLastError;//Err = 11004--->错误的代码
if pHE <> nil then
StrComName := StrPas(pChar(pHE^.h_name));
Result := strComName;
end;

当然,要用这个函数 先加载 sockdll.
...全文
30 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanshing 2003-10-20
  • 打赏
  • 举报
回复
要先调用 WSAStartup 函数进行初始化。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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