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