Asp.net
如何從 SQL Server 2008 本身獲取客戶端 IP 地址?
我有一個插入/更新/刪除的觸發器。那工作正常。此外,我需要進行更改的客戶端 IP 地址。我需要在 T-SQL 中,這意味著,不是在任何 Web 表單中,而是在 SQL/T-SQL 中,而我的觸發器將被觸發。
我也看了看,發現主數據庫中有一個名為的儲存過程
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我很想知道:
- 這裡的 net_address 是什麼?是 MAC 地址還是某個 IP 地址等?
- 有什麼方法可以將 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也看看這篇關於獲取客戶端IP地址的文章