Мне нужно найти IP-адреса установленных принтеров на моем ноутбуке. Я перемещаю свой ноутбук между разными местами и сетями. Каждая сеть имеет свой собственный набор IP-адресов. На ноутбуке установлены разные принтеры для каждого места, и все соединения осуществляются по беспроводной сети.
При использовании приведенного ниже кода (.net 4.0) QueuePort.Name возвращает:
WSD-27e3f972-cdc7-459d-b0c1-20e8410fb1db.0032 и
192.168.1.12_1
Поскольку это сетевые принтеры, я предполагаю, что они должны разрешать реальный IP-адрес??
Где я ошибаюсь? Или есть лучший способ? Мы очень ценим любую помощь.
IEnumerable<Printer> GetLocalPrinters()
{
EnumeratedPrintQueueTypes[] enumerationFlags = { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections };
LocalPrintServer printServer = new LocalPrintServer();
var x = printServer.GetPrintQueues(enumerationFlags).Select(y =>
new Printer
{
Fullname = y.FullName,
QueuePortName = y.QueuePort.Name,
Location = y.Location
})
.OrderBy( z => z.QueuePortName);
return x;
}