Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从服务器物理地址获取VM IP地址_C#_System.net_Virtual Ip Address - Fatal编程技术网

C# 从服务器物理地址获取VM IP地址

C# 从服务器物理地址获取VM IP地址,c#,system.net,virtual-ip-address,C#,System.net,Virtual Ip Address,我正在使用TNS名称连接到Oracle DB。应用程序使用的一个条目正在使用具有3 DB IP地址的故障转移场景,所有这些地址都是虚拟的 我试图获取并显示这些DB IP地址,但当我使用从Oracle连接对象获取的主机名时,我会获取DB服务器的物理IP地址 假设物理地址为22.23.24.25,它有3个虚拟机:22.23.24.50、.51和.52 在TNSNAMES.ORA文件中,我有: ABCD = (DESCRIPTION = (ADDRESS_LIST = (FAI

我正在使用TNS名称连接到Oracle DB。应用程序使用的一个条目正在使用具有3 DB IP地址的故障转移场景,所有这些地址都是虚拟的

我试图获取并显示这些DB IP地址,但当我使用从Oracle连接对象获取的主机名时,我会获取DB服务器的物理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
公共静态字符串GetDBHost()
{
string sHostName=string.Empty;
OracleDbContext=新的OracleDbContext();
尝试
{
dbContext.Open();
sHostName=dbContext.DbConnection.HostName;
}
捕获(例外e)
{
}
最后
{
dbContext.Close();
}
返回sHostName;
}
//调用上述方法:
字符串sDBHostName=ServerData.GetDBHost();

IPAddress[]ipadd=Dns.GetHostAddresses(sDBHostName);按名称Ping服务器,响应将是IP。我知道服务器的主机名和IP,它是22.23.24.25。我正在尝试查看是否可以找到VM IP地址。您如何知道VM IP地址是在计算机上还是在单独的专用子网中?这是如何设置DB服务器的。