delphi 如何在存在4个局域网的情况下强制绑定TNetHttpClient使用的IP?

ecfdbz9o  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(196)

我正在使用 Delphi 10.2东京。我有4个互联网资源与4个局域网。我想使一个程序使用TNetHttpClient。我如何引导它使用一个特定的互联网资源?

shstlldc

shstlldc1#

不幸的是,TNetHttpClient不提供将其绑定到特定LAN的能力,如果需要此功能,则必须找到另一个可以实现此功能的HTTP库。

更新日期:

在做了一些阅读之后,发现至少在Windows上,为 * 出站 * 连接绑定套接字只为套接字的数据包设置源IP,但在Vista之前,用于建立IPv4连接的实际适配器完全由Windows的路由表确定,应用程序不能 * 强制 * 使用特定的IPv4适配器。而对于Vista+上的IPv4通信,将套接字绑定到特定适配器在大多数情况下都应该有效。
Q175396: Windows Socket Connection from a Multiple-Homed Computer
Strong and Weak Host Models
Using a specific network interface for a socket in windows
例如,Indy的TIdHTTP有一个公共的BoundIP属性,用于将其套接字绑定到网络接口的IP(在需要接口名称的平台上,可以使用TIdHTTP.OnSocketAllocatedTIdHTTP.OnAfterBind事件调用TIdHTTP.Socket.Binding.SetSockOpt()方法,例如在Linux上使用SO_BINDTODEVICE选项)。

相关问题