首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Win32应用编程接口获取给定端口名称的网络打印机的IP地址?

如何使用Win32应用编程接口获取给定端口名称的网络打印机的IP地址?
EN

Stack Overflow用户
提问于 2009-10-19 09:25:34
回答 5查看 4.3K关注 0票数 6

如何使用win32应用程序接口获取给定端口名称的网络打印机的IP地址?

我尝试查看PRINTER_INFO_* structs,但它似乎不在那里。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-19 22:41:06

我不认为有一个标准的方法来获取IP地址。网络端口监视器可能有不同的不兼容实现。对于我的网络打印机,IP地址是端口名称的一部分(例如IP_192_168.1.104)。如果它是这种形式,那么您可能能够将其解析出来,但我不认为这是通用的。

使用EnumPorts可以确定它是否是网络打印机,但我仍然看不到获取IP地址的方法。

票数 2
EN

Stack Overflow用户

发布于 2013-08-20 13:25:34

您可以通过PRINTER_INFO_2获取端口名称,并从注册表中获取ip,路径为: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports the ip store in "HostName“

票数 4
EN

Stack Overflow用户

发布于 2009-10-19 10:12:10

与任何其他IP网络设备一样,打印机将具有IP地址(表示其以太网卡),并将在特定端口上运行服务(标识响应打印机消息的程序)。这仅仅是网络方面的东西,与打印机相关的东西没有任何关系。

因此,由于它只有端口,所以没有办法找到它的IP地址。可能所有其他打印机上的服务都侦听同一端口。

假设您拥有打印机的名称,则需要查询您的域的名称服务。此服务将网络地址映射到“符号”名称。

使用winsock2应用程序接口,我相信它是您需要的gethostbyname。这将按其名称检索打印机的主机信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1587716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档