2017-07-27 132 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