我用gethostbyaddr通过IP获取主机名,如果对象机器是Win98时出现问题:
当对象机器名称出现空格的时候(如qqq aaa),那么API返回的将只有空格之前的部分,也就是qqq,但是我使用很多网络软件的时候都可以只输入IP能正确的得知对应的主机名,我希望知道是怎么办到的

解决方案 »

  1.   

    是不是98下面这个函数不能用啊,你察看一下msdn
      

  2.   

    gethostname呢?
    不行就使用Netbios吧。
      

  3.   

    gethostname是获取本机的名称啊!我希望的是获取远程主机的名称,至于通过Netbois的方式不知道编程要怎么做呢?其实就是希望指点一个能够获得这种特殊情况下正确的机器名的方式(象某个API之类的),如果不是特殊情况的话,gethostbyaddr应该是很符合我的要求的。
      

  4.   

    我刚才试了一下,是不行,我用的是Win2000,另一台电脑用Win98,我们用局域网相连,我看不到他的IP.
      

  5.   

    通常局域网的电脑的IP显示为:192.168.1.* 但是他的显示为0.4.1448.131 并且它可以上局域网。但是我在Win2000下Ping那台电脑的时候,只显示了这个IP,然后就Time Out了。
      

  6.   

    我写了一个程序,在Win2000下运行OK,但是也不能查到那台Win98的电脑名。
      

  7.   

    建议不要用gethost...,此函数不支持多线程
    用netbios
      

  8.   

    www.vchelp.net那里面有一个例子,你可以下来去看看
      

  9.   

    netbios函数的用法我不太明白,不知能否赐教?
      

  10.   

    你是怎么知道你得到的名字是“qqq”?也许你已经得到正确的名字了(“qqq aaa”),只是你没有正确地显示出来啊,因为很多处理字符的函数的参数,都是处理空结尾(NULL-terminated)字符的(遇到空字符,即认为此字符已结束)。
      

  11.   

    API GetComputerName() 获得本机的主机名