У меня есть ряд имен iSCSI (инициаторов), которые обычно выглядят так:
iqn.yyyy-mm.naming-authority:unique name
E.g.
iqn.1991-05.com.microsoft:myPC
Я хотел бы программно сопоставить такие имена iSCSI с их соответствующими IP-адресами и/или именами хостов — есть ли способ сделать это? Идеально:
- Я хотел бы получить имя хоста, используя, например. CIM-XML/WBEM/SMI-S или аналогичный протокол, который позволит мне выполнять сопоставление независимо от платформы;
- Я хотел бы избежать развертывания какого-либо пользовательского кода на хостах;
- Я хотел бы избежать необходимости вручную подключаться к каждому возможному хосту в сети и проверять, соответствует ли его имя iSCSI рассматриваемому.
- Желательно Java или C#.
Обратите внимание, что часть unique name
обычно является именем хоста, но это не гарантируется. Кроме того, имена iSCSI могут использовать формат EUI, например:
eui.0123456789ABCDEF
В Windows можно использовать либо утилиту панели управления «iSCSI Initiator», либо команду iscsicli.exe
для получения IQN машины, поэтому теоретически я мог бы перебрать все возможные (Windows) хосты и посмотреть, совпадают ли значения IQN; однако это не похоже на оптимальное решение.
Я также удалил все классы WMI и CIM искать это сопоставление, но не смог найти его там.
Есть ли правильный способ сделать это?