2013-04-11 75 views

回答

0

在這裏你的功能幫助去:

CREATE FUNCTION [dbo].[GetCurrentIP]() 
RETURNS varchar(255) 
AS 
BEGIN 
    DECLARE @IP_Address varchar(255); 

    SELECT @IP_Address = client_net_address 
    FROM sys.dm_exec_connections 
    WHERE Session_id = @@SPID; 

    Return @IP_Address; 
END 
+1

當前客戶端服務器的不是這將返回的IP地址。 – 2013-04-11 07:16:43

1

試試這個:

SELECT CONNECTIONPROPERTY('local_net_address') AS local_net_address, 

或者:

SELECT SERVERPROPERTY(N'MachineName'); 

或者:

SELECT @@SERVERNAME; 
+0

我在執行時需要IP地址不是服務器的名稱 「SELECT CONNECTIONPROPERTY('local_net_address')AS local_net_address,」出現錯誤 'CONNECTIONPROPERTY'不是公認的內置函數名稱。 – 2013-04-11 08:22:05

+0

您可以解析主機名:http://stackoverflow.com/questions/967684/resolve-hostnames-with-t-sql – CloudyMarble 2013-04-11 08:35:19

+0

我想服務器的IP地址當前客戶端的不是。我是不能夠獲得IP地址而不是它的每一個地方我得到唯一的服務器名稱....但我需要IP地址.. – 2013-04-11 08:39:06

0

這是我找到了最好的解決方案,我希望它能幫助你

SELECT SERVERNAME = CONVERT(NVARCHAR(128),SERVERPROPERTY('SERVERNAME')) 
,LOCAL_NET_ADDRESS AS 'IPAddressOfSQLServer' 
,local_tcp_port AS 'PortNumber' 
FROM SYS.dm_exec_connections 
WHERE local_net_address IS NOT NULL 
AND session_id IS NOT NULL 
GROUP BY LOCAL_NET_ADDRESS,local_tcp_port