gpt4 book ai didi

asp.net - 如何从SQL Server 2008本身获取客户端IP地址?

转载 作者:行者123 更新时间:2023-12-01 19:57:27 24 4
gpt4 key购买 nike

我有一个插入/更新/删除触发器。效果很好。另外,我需要进行更改的客户端的 IP 地址。我在 T-SQL 中需要这一点,这意味着,不是在任何 Web 表单中,而是在 SQL/T-SQL 中,而我的触发器将被触发。

我还查了一下,发现master数据库中有一个名为xp_cmdshell的存储过程,当使用ipconfig执行时,我们可以获得IP地址。我认为只有当您拥有数据库的管理访问权限时这才有效。我的托管是共享托管,所以我没有这样的特权。还有其他出路吗?

请注意:我没有 SQL Server 2008 数据库的管理权限。作为经过身份验证的用户,我需要一个解决方案。

另一个更新:

我已经找到了解决方案,适合我的场景的查询是

SELECT hostname, net_library, net_address
FROM sys.sysprocesses
WHERE spid = @@SPID

它会根据需要执行,但只有一个问题,即 net_address 不是 IP 格式。下面是我的结果:

hostname    net_library     net_address
IPC03 TCP/IP AE8F925461DE

我很想知道:

  1. 这里的 net_address 是什么?是 MAC 地址还是某个 IP 地址等?

  2. 有什么方法可以将net_address转换为ip吗?

最佳答案

我发现了一些可能对你有用的东西

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

来自How to get Client IP Address in SQL Server

另请参阅这篇关于 Get client IP address 的文章

关于asp.net - 如何从SQL Server 2008本身获取客户端IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com