使用SQL语句获得服务器名称和IP 地址

获取服务器名称:

 

SELECTSERVERPROPERTY('MachineName')

select@@SERVERNAME

selectHOST_NAME()

获取IP地址可以使用xp_cmdshell执行ipconfig命令:

--开启xp_cmdshell   

execsp_configure'show advanced options', 1  

reconfigurewithoverride

execsp_configure'xp_cmdshell', 1  

reconfigurewithoverride

execsp_configure'show advanced options', 0  

reconfigurewithoverride

go

 

begin

declare@iplinevarchar(200)

declare@posint

declare@ipvarchar(40)

setnocounton

set@ip=null

ifobject_id('tempdb..#temp')isnotnulldroptable#temp

createtable#temp(iplinevarchar(200))

insert#tempexecmaster..xp_cmdshell'ipconfig'

select@ipline=ipline

from#temp

whereupper(ipline)like'%IPv4 地址%'--这里需要注意一下,系统不同这里的匹配值就不同

if@iplineisnotnull

begin

set@pos=charindex(':',@ipline,1);

set@ip=rtrim(ltrim(substring(@ipline,

@pos+ 1 ,

len(@ipline)-@pos)))

end

selectdistinct(rtrim(ltrim(substring(@ipline,

@pos+ 1 ,

len(@ipline)-@pos))))asipaddressfrom#temp

droptable#temp

 

 

setnocountoff

end

go

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

 

SELECTSERVERNAME=CONVERT(NVARCHAR(128),SERVERPROPERTY('SERVERNAME'))

,LOCAL_NET_ADDRESSAS'IPAddressOfSQLServer'

,CLIENT_NET_ADDRESSAS'ClientIPAddress'

FROMSYS.DM_EXEC_CONNECTIONSWHERESESSION_ID=@@SPID

 

 

你可能感兴趣的:(SQL语句获取服务器名称)