SELECT CLIENT_NET_ADDRESS AS 'ClientIPAddress'
FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID我在插入过程中使用上述值,但客户端系统ip未保存。请帮助我。
ALTER procedure [dbo].[proInsertLogDetails]
@action nvarchar(50),
@table_id nvarchar(500),
@created_by nvarchar(500)
as
begin
declare @ip varchar(100)
SELECT @ip=CLIENT_NET_ADDRESS FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID
insert into user_log
(
[action],
created_by,
ip_address,
table_id
)
values
(
@action,
@created_by,
@ip
,
@table_id
)我正在使用上述存储程序。
发布于 2015-01-23 10:51:48
您的问题被标记为ASP.net,但您正在使用到Server的连接来确定客户端的IP地址。我想你指的是网络浏览器作为客户端?在这种情况下,因为浏览器从来不让连接到Server的连接达到最好的效果,所以您可以希望它提供连接到Server的Web服务的地址。
发布于 2015-01-23 10:55:45
您可以在asp.net中获取客户端机器ip地址/主机名。
String sName = System.Net.Dns.GetHostEntry
(HttpContext.Current.Request.UserHostName).HostName将此值作为参数发送到存储过程proInsertLogDetails
ALTER procedure [dbo].[proInsertLogDetails]
@action nvarchar(50),
@table_id nvarchar(500),
@created_by nvarchar(500),
@ClientName varchar(100)
as发布于 2015-01-23 11:04:36
您可以创建一个函数
CREATE FUNCTION [dbo].[GetIp] ()
RETURNS VARCHAR(255)
AS
BEGIN
DECLARE @ip VARCHAR(255);
SELECT @ip = client_net_address
FROM sys.dm_exec_connections
WHERE Session_id = @@SPID;
RETURN @ip;
ENDhttps://stackoverflow.com/questions/28107576
复制相似问题