
توسط روشی که امروز باهم بررسی می کنیم شما می توانید IP کاربری که به سرور متصل شده را بدست آورید.
بدست آوردن 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
جدول sys.dm_exec_connections از جداول SQL SERVER حاوی اطلاعاتی در مورد اتصال به Instance های نصب شده و جزییات هر یک از این اتصال ها می باشد بطور مثال مدت زمان برقراری اتصال ((connect_time ، پروتکل برقراری اتصال ( protocol_type که می تواند TDS یا SOAP باشد) ، protocol_version ، last_write ، last_read ( مدت زمان نوشته شدن و خوانده شدن اطلاعات ) و …
فیلد client_net_address هم آدرس هاست (ip) اتصال شده به سرور را برمی گرداند .
فیلد Session_id هم id سشن (session) مربوط به اتصال کنونی است .