清风竹林

ぷ雪飘绛梅映残红
   ぷ花舞霜飞映苍松
     ----- Do more,suffer less

如何通过打印机之网络名称获取其IP地址

  前天有大学同学问到这个问题,据说寻觅了好久:
  1、如何根据网络打印机的名字,获取该打印机的IP;
  2、如何从shd文件获取打印相关的信息;
 
  问题一与“查找网络上服务器的ip地址”是相同的问题,比如查找g.cn的ip地址。以下假定网络打印机名称为"\\printer",则可通过以下代码获取其ip地址。
#include <iostream>
#include 
<WinSock2.h>
#pragma comment(lib, 
"Ws2_32")

int main(int argc, char* argv[])
{
    WSADATA wsaData;
    
const int err_code= WSAStartup(MAKEWORD(2,2),&wsaData);
    
if (0== err_code)
    {
        hostent
* pHost= gethostbyname("printer");

        
if (NULL!= pHost)
        {
            sockaddr_in   sa; 
            
for(int i=0; pHost->h_addr_list[i]; ++i)
            { 
                memcpy(
&sa.sin_addr.s_addr, pHost->h_addr_list[i], pHost->h_length);
                std::cout
<<"IP= "<< inet_ntoa(sa.sin_addr)<< std::endl;
            }  
        }
    }


    system(
"pause");
    
return 0;
}

   问题二尚无头绪,借宝地问一下各位前辈有没有知道解决方案的?谢谢啦!




posted on 2009-09-02 15:51 李现民 阅读(3735) 评论(3)  编辑 收藏 引用 所属分类: VC

评论

# re: 如何通过打印机之网络名称获取其IP地址 2009-09-02 16:19 guest

SHD文件结构(PRINT SPOOLER)

http://www.cnblogs.com/ahuo/archive/2008/02/24/1079562.html  回复  更多评论   

# re: 如何通过打印机之网络名称获取其IP地址 2009-09-02 17:36 李现民

@guest
好, 谢啦  回复  更多评论   

# re: 如何通过打印机之网络名称获取其IP地址 2009-09-06 17:30 戴尔电脑

很好啊!  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理