C# 远程Mysql连接的模拟IP地址.NET C Sharp

C# 远程Mysql连接的模拟IP地址.NET C Sharp,c#,mysql,.net,unit-testing,mocking,C#,Mysql,.net,Unit Testing,Mocking,您好,堆栈溢出的精彩社区 我最近是一名.net开发人员,在c sharp工作。现在,我正在尝试编写一组单元测试来测试mysql数据库的安全性。测试套件的一部分是确保mysql数据库不能接受来自特定ip地址的连接。我一直在努力寻找一种方法来测试这个。迄今为止的想法是: 模拟我当前拥有的ip地址,以便我正在建立的连接认为它来自另一个ip地址 SSH连接到具有不可接受的ip地址之一的远程服务器,并执行shell命令以连接到mysql服务器 我还没有找到手动更改发送到mysql服务器的ip地址的方法。我

您好,堆栈溢出的精彩社区

我最近是一名.net开发人员,在c sharp工作。现在,我正在尝试编写一组单元测试来测试mysql数据库的安全性。测试套件的一部分是确保mysql数据库不能接受来自特定ip地址的连接。我一直在努力寻找一种方法来测试这个。迄今为止的想法是:

  • 模拟我当前拥有的ip地址,以便我正在建立的连接认为它来自另一个ip地址
  • SSH连接到具有不可接受的ip地址之一的远程服务器,并执行shell命令以连接到mysql服务器
  • 我还没有找到手动更改发送到mysql服务器的ip地址的方法。我正在使用MySql.Data.MySqlClient程序集中的MySqlConnection类。据我的研究显示,这是不可能的。(这可能是件好事)

    通过研究,我了解到.Net没有本机SSH库,而且这个项目不可能引入一个SSH库,因为它阻碍了我执行#2的能力

    因此,我不知道如何继续下去。有没有人有过模拟数据库连接和控制源ip的经验?(或与此相关的任何其他信息)

    非常感谢您提供的任何帮助或资源


    谢谢

    对于那个特殊的任务来说,这可能有些过分,但我怎么看呢

    您需要一个代理服务器,在您的MySQL实例上禁用IP地址

    然后您测试成功的连接,只需直接从您的机器连接到MySQL(它应该连接良好)


    然后测试失败场景,通过代理重定向请求(我希望MySQLClient允许,无论如何,您可以自己创建一个简单的代理)。在这种情况下,连接将失败。

    感谢您的回复!我不确定我能不能让代理服务器来完成这项任务,因为正如你所说的,这可能有点过分了。我还担心可能带来的安全风险?你以前有过这样的经历吗?你所说的安全风险是什么?我假设所有这些都是在某个测试MySQL数据库的本地网络中完成的,不是吗?代理的想法在您的情况下似乎是最可行的,请将其视为一个运行另一台机器并重定向您的请求的简单应用程序,这样请求就可以“执行”从另一个ip-完全按照您的需要。我很想说我们正在使用一个本地数据库,但我被特别指示根据建议在实时资源上运行所有测试。谢谢你的帮助和建议!我最终可能会使用这个,并选择这个作为答案