Я знаю, что это старый пост, но у меня была такая же проблема, когда я смог получить имя порта принтера, но не IP. В моем случае я не мог полагаться на то, что имя порта будет IP_[IP-адрес], но нашел, как получить фактический IP-адрес из имени порта.
Windows хранит информацию о портах в реестре под
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Стандартный порт TCP/IP\Порты\[имя порта]
Этот ключ содержит значения, установленные на странице конфигурации порта, включая 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);
}
person
Michael Ball
schedule
04.02.2011