gpt4 book ai didi

c - 在docker容器中获取主机IP

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

我在 Ubuntu 系统上有一个 ubuntu 容器。容器充当客户端,而 Ubuntu 主机系统充当服务器。所以我想通过套接字编程将数据发送到我的主机系统。要将数据发送到主机系统,我需要主机 Ip。如何在容器中获取主机 Ip。我试过了

/sbin/ip route|awk '/default/ { print $3 }'

但它返回 Docker ip:172.17.42.1。但是我的主机系统 idp 是:192.168.2.101。如何在 docker 容器中获取主机 ip。你可以看下面的代码来了解问题。

Ubuntu Host server.c 如下所示:

bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); 
listen(listenfd, 10);
connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);

Container client.c 如下所示:

serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // <-- I want place my Host IP here

如何获取容器内的主机IP?

最佳答案

But my Host system idp is: 192.168.2.101

您的主机可能有多个地址。很可能您在 eth0wlan0 上有 192.168.2.101 > 等和 docker0 上的 172.17.42.1 - 用于与容器通信的虚拟接口(interface)。

没有“标准”方法来获取主机上配置的其他地址;我没有找到任何 docker方法。


无论如何,172.17.42.1 地址可能会完成您想要的 100% - 无论您如何放置,您的流量仍将流经该“接口(interface)”。

关于c - 在docker容器中获取主机IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26673455/

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