如何查看数据库服务器IP地址和名称?

如果你使用的是SQL Server数据库,可以通过执行一段T-SQL脚本来获取服务器IP。首先创建一个临时表#ip用于存储ping命令的结果,然后构造一个ping命令,利用@@servername变量获取服务器名并拼接ping参数-a -n 1 -l 1。接着执行xp_cmdshell将结果插入临时表,最后从临时表中筛选id为2的行,通过字符串处理函数提取出IP地址,并关联服务器名显示出来,执行完毕后记得删除临时表。

评论 (5)

这种写法虽然能拿到IP,但生产环境开启xp_cmdshell风险太大了,容易被攻击者利用。更推荐直接用sys.dm_exec_connections或者查询视图,既安全又直观,何必折腾临时表和字符串截取?

这方法有点硬核啊,直接调xp_cmdshell。不过现在安全策略里xp_cmdshell默认都是禁用的,还得先开配置,步骤有点繁琐。其实更简单的办法是用SELECT @@SERVERNAME看名字,IP的话直接在操作系统层面查或者用系统视图sys.dm_exec_connections查本地连接信息可能更直观,不用搞这么复杂的临时表解析ping结果。

这方法太硬核了,还搞临时表加字符串截取,看着都头大。其实直接 select * from sys.dm_exec_connections 或者用 PowerShell 的 Test-Connection 配合 @@SERVERNAME 更直观。这种“野路子”虽然能跑通,但在生产环境用 xp_cmdshell 风险有点大,建议还是用标准视图或者网络层工具查。

这方法有点野路子啊,虽然能跑通,但xp_cmdshell现在默认都是禁用的,开启它还得改配置,安全风险太大。其实直接查 sys.dm_exec_connections 或者用系统函数 SERVERPROPERTY('MachineName') 配合 DNS 解析更正规,何必这么折腾临时表呢?

这方法太硬核了,直接调xp_cmdshell,生产环境谁敢这么玩,安全风险太高。其实直接查sys.dm_exec_connections或者用系统函数就能拿IP,何必搞这么复杂还留个临时表尾巴。