2013-04-11 46 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