如何将局域网中所有的计算机的ip地址以及名称取出?送高分

解决方案 »

  1.   

    function GetDomainName(Ip: string): string;
    //获得局域网内IP地址的机器名,只对网络设置设为允许其它人使用我的机子的机器有效
    var
      pH                : PHostent;
      data              : twsadata;
      ii                : dword;
    begin
      WSAStartup($101, Data);
      ii := inet_addr(pchar(ip));
      pH := gethostbyaddr(@ii, sizeof(ii), PF_INET);
      if (ph <> nil) then
        result := pH.h_name
      else
        begin
          result := '未知的计算机';
        end;
      WSACleanup;
    end;你可以在程序中将局域网中的IP地址用循环从这个函数过一遍,
    (因为一般情况下一局域网内部的IP地址都是设成同一域的,
    用循环应该不会慢,只要你的机子不是什么286、386的)
    然后把得到的机器名都保存起来就行了。