当前位置:  开发笔记 > 编程语言 > 正文

在C#中确定打印机的IP地址

如何解决《在C#中确定打印机的IP地址》经验,为你挑选了2个好方法。

我想使用C#(.NET 2.0)确定打印机的IP地址.我只有Windows操作系统中设置的打印机共享名称,格式如下\\PC Name\Printer Name.打印机是网络打印机,具有与PC不同的IP地址.有没有人有任何指针?

在此先感谢您的帮助.

问候,安迪.



1> Jay..:

只需使用.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;
             }



2> 小智..:

我知道这是一篇过时的文章,但是我遇到了同样的问题,我可以获取打印机端口名称,但不能获取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);
}

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有