2017-07-27 3 views
0

J'ai essayé d'obtenir le nom d'hôte par adresse IP comme ci-dessous.Obtenir le nom d'hôte par adresse IP

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

Mais pour les périphériques d'imprimante. cela donne SocketException dit "Aucun hôte de ce type n'est connu".

Ensuite, j'ai essayé avec this scanner Ip. Il a montré un nom d'hôte correctement (Et c'est java).

Existe-t-il un autre moyen d'obtenir le nom d'hôte en C#?

+0

Quel est le type de 'ipAddress'? Si c'est une chaîne, avez-vous essayé d'utiliser 'IPAddress.Parse' et passez-le à' Dns.GetHostEntry'? – vasek

+0

Eh bien, pas toutes les adresses IP ont un nom .. –

+0

@vasek c'était chaîne. et essayé de passer 'IPAddress' et le résultat était le même. – mhs

Répondre

0

Vous pouvez essayer cette façon

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

merci, j'ai essayé. cela donne des imprimantes installées. mais certaines imprimantes ne sont pas installées, – mhs