首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 獲取用戶端連線 IP 位址的標量函數

     編輯:關於SqlServer

功能說明

在預存程序、觸發器或動態 SQL 中,透過 sys.dm_exec_connections 取得當前會話 (@@SPID) 的用戶端網路位址 (client_net_address)。

函數定義

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;

使用範例

SELECT dbo.GetCurrentIP() AS ClientIP;
-- 輸出範例: 192.168.1.100:54321

注意事項

  • 需 VIEW SERVER STATE 權限才能查詢 dm_exec_connections。
  • 若透過連線池,IP 為應用伺服器位址,非最終用戶端。
  • 本地回環連線顯示 <local machine> 或 127.0.0.1。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved