2017-07-27 133 views
0

我试图通过IP地址获取主机名称如下。通过IP地址获取主机名称

IPHostEntry entry = Dns.GetHostEntry(ipAddress); 
string hostName = entry.HostName; 

但是对于打印机设备。这给SocketException说“没有这样的主机是已知的”。

然后我用this IP扫描仪试了一下。它已经正确显示了一个主机名(它是java)。

有没有其他方法可以在C#中获取主机名?

+0

什么是'ipAddress'的类型?如果它是一个字符串,你是否尝试过使用'IPAddress.Parse'并将它传递给'Dns.GetHostEntry'? – vasek

+0

那么,不是每个IP地址都有一个名字.. –

+0

@vasek它是字符串。并尝试传递'IPAddress',结果是一样的。 – mhs

回答

0

你可以试试这个方法

Using System.Printing 

var pri = new PrintServer(); 
      var queues = pri.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }); 
      foreach (var queue in queues) 
      { 
       string printerName = queue.Name; 
       string printerPort = queue.QueuePort.Name; 
      } 
+0

谢谢,我试过了。这给已安装的打印机。但有些打印机未安装, – mhs