【问题标题】:how to get a device name for a given ip address如何获取给定 IP 地址的设备名称
【发布时间】:2014-09-18 19:07:51
【问题描述】:

我需要获取给定 IP 地址的网络设备名称。例如连接到网络中的打印机。我有打印机的 IP 地址,但我需要使用相应的 IP 地址访问其名称。 我尝试使用 dns.getHostByaddress(),但效果不佳。如果存在任何其他解决方案,请告诉我。

 string c = Dns.GetHostByAddress("xxx.xxx.x.xxx").HostName;
 pdoc.PrinterSettings.PrinterName =c ;

它是一个使用 c# vs2010 的 windows 独立应用程序。

【问题讨论】:

  • 我想要设备名称,当我通过地址使用 gethost 时,它会抛出错误“请求的名称有效,但未找到请求类型的数据”。
  • 准确地说,我想设置打印机的IP地址如下所述,以访问连接在网络中的打印机
  • pdoc.PrinterSettings.PrinterName ="IPaddress" ;
  • 打印机有主机名吗?
  • PrinterSettings.PrinterName 必须设置为本地计算机知道的打印机名称。这与 IP 地址无关。请解释您如何获取 IP 地址而不是本地已知的打印机名称,以及为什么要以这种方式使用它。另请参阅Print to a network printer using IP addressHow to access a printer name from IP on network in C#?

标签: c# .net


【解决方案1】:

您无法通过 ip 本身获取“设备名称”。 DNS-Names 仅存在于保存有关它的信息的 DNS-Server(或这种环境中的 netbios)中 - 如果您调用“Dns.GetHostByAddress”,您总是会查询 DNS-Server。如果您在设备上使用 DHCP,则 dns 条目将自动更新(如果配置良好)。否则,您必须在设备上配置 DNS-Server ip-address,并希望该设备能够在 DNS 上注册(您的设备的权限和支持)。 另一种方法(我不喜欢)是手动将条目添加到 DNS。 您可以通过执行“ipconfig /registerdns”在 Windows 机器上强制进行 dnsregistration

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-27
    • 2013-06-29
    • 2015-02-26
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多