1

我知道我可以通过以下查询获取 SQL Server 连接的 IPAddress 和 ConnectionID:

从 sys.dm_exec_connections 中选择 client_net_address、connection_id 其中 session_id = @@spid

但是有没有办法得到对应的MAC地址呢?

谢谢。

4

3 回答 3

4

见下文:

select net_address from sysprocesses where spid = @@SPID
于 2013-10-04T20:23:21.180 回答
2

以下部分是获取服务器当前使用的网络的 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,此结果将只显示一个。

于 2016-02-25T15:02:06.520 回答
1
    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

于 2013-10-04T20:37:14.087 回答