从 SQL Server 获取访问者 IP 地址

Posted

技术标签:

【中文标题】从 SQL Server 获取访问者 IP 地址【英文标题】:Get visitor IP address from SQL Server 【发布时间】:2015-12-28 16:31:28 【问题描述】:

如果我们的网站部署在服务器“A”上,并且用户从他的机器“B”请求此网站中的页面。我们可以从连接到“A”的数据库服务器“C”获取“B”的 IP 地址吗? 例如,在登录时,当我验证我的凭据存储在“C”中的用户时,我们是否有任何 T-SQL 语句来跟踪用户的 IP 地址。

我可以使用 ASP.Net 读取 IP 地址,但我想知道是否可以从 SQL Server 本身完成。

我用谷歌搜索了,它建议使用 SYS.DM_EXEC_CONNECTIONS。但是当我们需要获取连接到数据库的客户端的IP地址时,这是适用的。

可能无法实现我的要求。问题是我是 IT 世界的新手。 我将不胜感激任何帮助或建议。

提前致谢

【问题讨论】:

你的 sql server 如果它只直接从你的 web server 连接,那么它不会知道。 我想对你有帮助请到这个链接***.com/questions/9941074/… 【参考方案1】:

SQL Server 不知道或区分连接到它的不同客户端。在这种情况下,SQL Server 唯一知道的客户端是 Web 服务器 (A) 上的应用程序/脚本。实际的最终用户 B 被网络服务器有效地屏蔽了 SQL Server。就 SQL Server 而言,唯一已知的客户端是 Web 服务器,因为它是与 SQL Server 连接的唯一来源。

您可以从您的 asp.net 应用程序中获取 IP(如您所指出的)并将其传递给 SQL Server。请记住,IP 和标头很容易被欺骗。此外,大多数用户通过某些公司网络或 ISP 进行连接,因此您获得的 IP 几乎可以肯定来自组织用于外部连接的共享块。同一台计算机上的同一用户可以在几分钟后使用完全不同的 IP 再次连接,而无需执行任何操作。

【讨论】:

以上是关于从 SQL Server 获取访问者 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

急:sql server 2000如何映射端口才能从外网访问?

怎样通过计算机ip地址访问sql server 2008数据库

PHP获取用户访问IP地址的5种方法

获取SQL Server中连接的客户端IP地址[转]

sql server中如何实现在异地访问数据库

php:获取IP地址