首页 > 解决方案 > SQL Server - 使用可用性组侦听器查询以获取服务器的 IP 地址

问题描述

还有另一个这样的问题,最常见的答案是使用 CONNECTIONPROPERTY('local_net_address')。微软文档说这会返回“目标”地址。因此,当我使用 AG 侦听器连接时,无论我真正连接到哪个 SQL Server,local_net_address 都会返回 AG 侦听器 IP。那么在使用AG监听器时如何获取SQL Server IP地址呢?

这将在安全环境中运行,并且 xp_cmdshell 不是一个选项。

标签: sql-server

解决方案


使用 AG 侦听器时的 SQL Server IP 地址

服务器不只有一个 IP 地址。例如,您用于连接的 AG 侦听器 IP 是服务器的附加 IP 地址。它通常与服务器可能拥有的 任何其他IP 地址一样好。

在最常见的配置中,SQL Server完全不知道服务器的 IP。SQL Server 只是在端口 1433 上侦听所有IP。

您可以查询服务器名称和域,并构建 DNS 查找以查找与该服务器名称关联的 IP:

select  DEFAULT_DOMAIN() domain, serverproperty('ComputerNamePhysicalNetBIOS') serverName

推荐阅读