SQL - Query to get server's IP address

前端 未结 10 1450
情深已故
情深已故 2020-11-27 11:35

Is there a query in SQL Server 2005 I can use to get the server\'s IP or name?

10条回答
  •  感动是毒
    2020-11-27 11:44

    You can get the[hostname]\[instancename] by:

    SELECT @@SERVERNAME;
    

    To get only the hostname when you have hostname\instance name format:

    SELECT LEFT(ltrim(rtrim(@@ServerName)), Charindex('\', ltrim(rtrim(@@ServerName))) -1)
    

    Alternatively as @GilM pointed out:

    SELECT SERVERPROPERTY('MachineName')
    

    You can get the actual IP address using this:

    create Procedure sp_get_ip_address (@ip varchar(40) out)
    as
    begin
    Declare @ipLine varchar(200)
    Declare @pos int
    set nocount on
              set @ip = NULL
              Create table #temp (ipLine varchar(200))
              Insert #temp exec master..xp_cmdshell 'ipconfig'
              select @ipLine = ipLine
              from #temp
              where upper (ipLine) like '%IP ADDRESS%'
              if (isnull (@ipLine,'***') != '***')
              begin 
                    set @pos = CharIndex (':',@ipLine,1);
                    set @ip = rtrim(ltrim(substring (@ipLine , 
                   @pos + 1 ,
                    len (@ipLine) - @pos)))
               end 
    drop table #temp
    set nocount off
    end 
    go
    
    declare @ip varchar(40)
    exec sp_get_ip_address @ip out
    print @ip
    

    Source of the SQL script.

提交回复
热议问题