我知道我可以通过以下查询获取 SQL Server 连接的 IPAddress 和 ConnectionID:
从 sys.dm_exec_connections 中选择 client_net_address、connection_id 其中 session_id = @@spid
但是有没有办法得到对应的MAC地址呢?
谢谢。
我知道我可以通过以下查询获取 SQL Server 连接的 IPAddress 和 ConnectionID:
从 sys.dm_exec_connections 中选择 client_net_address、connection_id 其中 session_id = @@spid
但是有没有办法得到对应的MAC地址呢?
谢谢。
见下文:
select net_address from sysprocesses where spid = @@SPID
以下部分是获取服务器当前使用的网络的 MAC 地址的 sql 命令:
declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36)))
insert into @t default values;
select substring(m,25,2) + '-' + substring(m,27,2) + '-' + substring(m,29,2) + '-' + substring(m,31,2) + '-' + substring(m,33,2) + '-' + substring(m,35,2) AS MacAddress FROM @t
select * from @t
请注意,如果您有超过 1 个 NIC,此结果将只显示一个。
declare @t table
(
i uniqueidentifier default newsequentialid(),
m as cast(i as char(36))
)
insert into @t default values;
select
substring(m,25,2) + '-' +
substring(m,27,2) + '-' +
substring(m,29,2) + '-' +
substring(m,31,2) + '-' +
substring(m,33,2) + '-' +
substring(m,35,2) AS MacAddress
FROM @t
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]: http: //www.codeproject.com/Tips/323721/How-to-get-Client-IP-Address-in-SQL-Server