Получение IP-адресов виртуальных машин с физического адреса сервера

#c# #system.net #virtual-ip-address

#c# #system.net #виртуальный-ip-адрес

Вопрос:

Я использую имена TNS для подключения к Oracle DB. Запись, используемая приложением, использует сценарий отработки отказа с IP-адресами 3 DB, все виртуальные.

Я пытаюсь получить и отобразить эти IP-адреса БД, но когда я использую имя хоста, которое я получаю от объекта подключения Oracle, я получаю физический IP-адрес сервера БД.

Допустим, физический адрес 22.23.24.25, и он имеет 3 виртуальных машины: 22.23.24.50, .51 и .52.

В TNSNAMES.Файл ORA, который у меня есть:

 ABCD = 
(DESCRIPTION =
    (ADDRESS_LIST = 
      (FAILOVER = off)
      (LOAD_BALANCE = off)
      (ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.50)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.51)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.52)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = abcd)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
      )
    )
)
  

Я пытался:

 public static string GetDBHost()
{
    string sHostName = string.Empty;
    OracleDbContext dbContext = new OracleDbContext();

    try
    {
        dbContext.Open();
        sHostName = dbContext.DbConnection.HostName;
    }
    catch (Exception e)
    {
    }
    finally
    {
        dbContext.Close();
    }
    return sHostName;
}

// Calling above method:
string sDBHostName = ServerData.GetDBHost();
IPAddress[] ipadd = Dns.GetHostAddresses(sDBHostName); <--- returns 22.23.24.25
  

Есть ли способ использовать 22.23.24.25 для получения IP-адресов виртуальных машин?

Комментарии:

1. Пропингуйте сервер по имени, и ответом будет IP.

2. Я знаю имя хоста и IP-адрес сервера, это 22.23.24.25. Я пытаюсь посмотреть, смогу ли я найти IP-адреса виртуальных машин.

3. Как узнать, находится ли IP-адрес виртуальной машины на компьютере или в отдельной частной подсети?

4. Вот как ОН настраивает серверы БД.