我想使用C#(.NET 2.0)确定打印机的IP地址.我只有Windows操作系统中设置的打印机共享名称,格式如下\\PC Name\Printer Name
.打印机是网络打印机,具有与PC不同的IP地址.有没有人有任何指针?
在此先感谢您的帮助.
问候,安迪.
只需使用.Net Framework 4.0或更高版本添加另一个解决方案
Using System.Printing var server = new PrintServer(); var queues = server.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }); foreach (var queue in queues) { string printerName = queue.Name; string printerPort = queue.QueuePort.Name; }
我知道这是一篇过时的文章,但是我遇到了同样的问题,我可以获取打印机端口名称,但不能获取IP。以我为例,我不能依赖于端口名是IP_ [IP地址],而是找到了如何从端口名中获取实际IP的信息。
Windows将有关端口的信息存储在注册表中的
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Print \ Monitors \ Standard TCP / IP Port \ Ports \ [端口名]
此项包含在端口配置页面中设置的值,包括IP地址和端口号。
快速的C#示例获取IP地址
using Microsoft.Win32; RegistryKey key = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\" + printerPortName, RegistryKeyPermissionCheck.Default, System.Security.AccessControl.RegistryRights.QueryValues); if (key != null) { String IP = (String)key.GetValue("IPAddress", String.Empty, RegistryValueOptions.DoNotExpandEnvironmentNames); }