SQL语句实现查询SQL Server服务器名称和IP地址
2022-11-12 09:40:33
内容摘要
这篇文章主要为大家详细介绍了SQL语句实现查询SQL Server服务器名称和IP地址,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
获取服务器
文章正文
这篇文章主要为大家详细介绍了SQL语句实现查询SQL Server服务器名称和IP地址,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
获取服务器名称:
代码如下:
1 2 3 4 | <code> SELECT SERVERPROPERTY( 'MachineName' ) select @@SERVERNAME select HOST_NAME()</code> |
获取IP地址可以使用xp_cmdshell执行ipconfig命令:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <code> --开启xp_cmdshell exec sp_configure 'show advanced options' , 1 reconfigure with override exec sp_configure 'xp_cmdshell' , 1 reconfigure with override exec sp_configure 'show advanced options' , 0 reconfigure with override go begin declare @ipline varchar(200) declare @pos int declare @ip varchar(40) set nocount on set @ip = null if object_id( 'tempdb..#temp' ) is not null drop table #temp create table #temp(ipline varchar(200)) insert #temp exec master..xp_cmdshell 'ipconfig' select @ipline = ipline from #temp where upper(ipline) like '%IPv4 地址%' --这里需要注意一下,系统不同这里的匹配值就不同 if @ipline is not null begin set @pos = charindex( ':' ,@ipline,1); set @ip = rtrim(ltrim(substring(@ipline , @pos + 1 , len(@ipline) - @pos))) end select distinct(rtrim(ltrim(substring(@ipline , @pos + 1 , len(@ipline) - @pos)))) as ipaddress from #temp drop table #temp set nocount off end go </code> |
但是很多情况下由于安全问题是不允许使用xp_cmdshell,可以通过查询SYS.DM_EXEC_CONNECTIONS :
代码如下:
1 2 3 4 5 6 | <code> SELECT SERVERNAME = CONVERT(NVARCHAR(128),SERVERPROPERTY( 'SERVERNAME' )) ,LOCAL_NET_ADDRESS AS 'IPAddressOfSQLServer' ,CLIENT_NET_ADDRESS AS 'ClientIPAddress' FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID </code> |
注:关于SQL语句实现查询SQL Server服务器名称和IP地址的内容就先介绍到这里,更多相关文章的可以留意
代码注释