gpt4 book ai didi

c++ - 确定重定向套接字打开请求的预期 IP 的 POSIX 调用是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:46 25 4
gpt4 key购买 nike

我正在修改我的主机文件以将(例如数据库调用)的 IP 地址更改为我正在编写的本地代理。

10.1.2.3 localhost
10.1.2.4 localhost

我希望监听套接字的代理计算出套接字打开请求打算发送到哪台机器。例如,在我的客户中,我正在打电话。

dbPort = 4000;
openDatabaseConnection("10.1.2.3", dbPort);
...
openDatabaseConnection("10.1.2.4", dbPort);

所以两者都调用同一个套接字。我希望我的代理服务器监听 4000 并通过预期的 IP 地址将去往 10.1.2.3 的服务器重定向到正确的服务器。

是否有 POSIX 调用从套接字 header 中获取它?

我的问题是:确定重定向套接字打开请求的预期 IP 的 POSIX 调用是什么?

最佳答案

不,没有办法知道在客户端程序中使用了哪个 IP 地址。主机文件定义了一组别名,名称/地址解析器将别名替换为实际地址(在您的情况下为 localhost),从而使您丢失有关所用别名的所有信息。没有进行“重定向”,别名替换是在客户端连接之前进行的。

解决问题的最简单方法不是通过 hosts 文件使用 IP 地址别名,而是使用不同的端口号。

您也可以为不同的地址添加“虚拟”接口(interface),并让代理服务器监听这两个接口(interface)上的连接。

关于c++ - 确定重定向套接字打开请求的预期 IP 的 POSIX 调用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829175/

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