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

获取服务器名称:

 

SELECT SERVERPROPERTY('MachineName')

select @@SERVERNAME

select HOST_NAME()

 

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

 

--开启xp_cmdshell  

exec sp_configure'show advanced options',

reconfigure with override 

exec sp_configure'xp_cmdshell',

reconfigure with override 

exec sp_configure'show advanced options',

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

 

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

 

你可能感兴趣的:(SQL,Server脚本)