提问人:nitzanms 提问时间:11/16/2023 更新时间:11/16/2023 访问量:39
如何获取 EF Core DbConnection/DbContext 的 IP 地址?
How can I get the IP address of an EF Core DbConnection/DbContext?
问:
我想跟踪特定 EF Core DB 连接用于连接到 Azure SQL 的 IP 地址。我可以这样做吗?
我尝试查看 DbConnection 和 DbContext 的属性,但没有看到任何有用的东西。是否可以向下转换为 SqlConnection 以获取此信息?正确的方法是什么?
答:
0赞
Svyatoslav Danyliv
11/16/2023
#1
您可以使用扩展方法GetConnectionString()
var connectionString = context.Database.GetConnectionString();
或者,您可以访问 DbConnection:
var dbConnection = context.Database.GetDbConnection();
如果 SQL Server 处于平衡器之下,为了获取 IP 攻击,您应该在打开的连接上执行 SQL 查询,如此处所述
评论
0赞
Svyatoslav Danyliv
11/16/2023
@PoulBak,你是对的,添加了这部分。
0赞
nitzanms
11/16/2023
所以我在这里的理解是,我只能通过SQL语句获取IP地址,而不能通过DbConnection?
1赞
Svyatoslav Danyliv
11/16/2023
尝试深入研究 SqlClient 源代码,然后深入研究私有属性,但没有运气。无法访问从中创建 TCP 套接字检索并用于创建的 IP 地址。Dns.GetHostEntry
评论