一个过程如何定制路线?

在我的计算机中,有两个networking适配器,连接到不同的子网。 如下:

适配器A:10.20.30.201适配器B:10.20.31.201

我想通过适配器A来生成一个特殊进程(例如进程A )的所有输出数据。也就是说,我想使适配器A成为进程的默认路由

我知道,我可以修改一些特殊的目的地的路由表,但是我想在这里做的是非常不同的。 进程A可能会与许多不同的IP进行通信,而且我事先不知道。

Winsock2提供LSP作为在TCP / IP堆栈中放置DLL的一种方法。 我不熟悉LSP,也不知道LSP是否可以做我想做的事情。

有谁能给我一些build议,谢谢。

关于LSP的快速背景:

使用Winsock2 API的应用程序调用WSA前缀函数的组合,例如WSAConnect,WSASocket,WSASend,WSARecv等。

如果应用程序仍然使用旧的winsock函数,那么这些函数映射到场景后面的Winsock2。 例如:send()映射到WSASend(),recv()到WSARecv()等

WSA前缀函数将在内部调用由LSP提供的相应的WSP前缀函数。 对于实例WSASend()调用WSPSend(),WSASocket()调用WSPSocket()等。简而言之,WSAWhateverFunction()将调用WSPWhateverFunction()。 他们的参数/回报也是一样的(不完全是,但种)。

LSP是一个具有这些WSP前缀功能的DLL,例如。 修改出站/入站流量,过滤等。但是,LSP仍然是一个用户空间的DLL。 它与其他用户空间程序一样有限,并且没有比主机应用程序更高的权限,例如Internet浏览器。 它可以访问其他程序可用的相同系统功能,例如。 winsock等

结论就是如果你的程序可以将特定网卡的流量引导到特定的网卡上,LSP也可以实现。 如果不能,LSP也不能。 因此,LSP与您的问题无关。