您的位置:首页 > 数据库

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

2013-07-09 10:11 281 查看
获取服务器名称:

 
SELECT
SERVERPROPERTY('MachineName')
select
@@SERVERNAME
select
HOST_NAME()
 

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

 

--开启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 :
 
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
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐