服务器之家

服务器之家 > 正文

SQL语句实现查询SQL Server服务器名称和IP地址

时间:2020-04-14 15:24     来源/作者:junjie

获取服务器名称:

?
1
2
3
SELECT SERVERPROPERTY('MachineName')
select @@SERVERNAME
select HOST_NAME()

 

获取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
--开启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

但是很多情况下由于安全问题是不允许使用xp_cmdshell,可以通过查询SYS.DM_EXEC_CONNECTIONS :

?
1
2
3
4
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

 

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部