gpt4 book ai didi

c++ - 通过 WinSocks 或任何其他 API 的应用程序的特殊路由?

转载 作者:行者123 更新时间:2023-11-30 04:35:15 25 4
gpt4 key购买 nike

我想将从我的应用程序发送的数据包路由到另一个网关,但我不知道我必须通过 setsockopt 更改哪些选项。我不能只将条目添加到特定主机的路由表中,因为第二个应用程序也必须通过默认网关连接到这些主机。网关具有不同的公共(public) IP。我找到了有关通过 IP_OPTIONS 套接字选项设置“源路由”选项的主题(尽管没有格式),但据我了解,此选项仅适用于路由器而不适用于我的网络适配器。我也无法添加第二个适配器并将其连接到同一个 LAN。

有什么建议可以根据每个应用程序发送数据包吗?可能是路由 API

附注:Windows 版本为 32 位 XP SP3、32 位和 64 位 Windows 7 以及一个 64 位 Windows Server 2008 R2。

最佳答案

简答:这真的很难,你确定要这样做吗?不可能直接通过 set sock opt。通过使用命令行实用程序“route”手动添加路由,很可能有更简单的选择。如果您的最终目的地是已知 IP 或网络,并且正常流量也可以通过其他网关路由,那将是最佳选择。

更长的答案:如果你是代码忍者,你有以下两个选择,祝你好运,我不知道这是否会在实践中起作用:

  • 使用原始套接字和 IP_HDRINCL 手动进行源路由(即在 IP header 中添加一个选项,其中包含您的代理地址)。参见 here进行介绍。
  • 您可以编写 Winsock LSP (introduction here)您可以使用它来拦截一些数据包并重新路由它们。

关于c++ - 通过 WinSocks 或任何其他 API 的应用程序的特殊路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5483490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com