gpt4 book ai didi

Docker:获取容器中的客户端 IP 地址

转载 作者:行者123 更新时间:2023-12-04 13:55:50 24 4
gpt4 key购买 nike

我如何在任何 docker 容器中接收客户端的 IP 地址?
在我的 php 应用程序中,我需要使用 $_SERVER[REMOTE_ADDR] 检查客户端 IP 地址以控制目前无法实现的访问。
例如,我正在端口 8080 上的容器中运行一个 php-apache 网络服务器。
我的 IP 地址是:192.168.80.177
容器网络:172.21.0.0/16
容器 ip': 172.21.0.3
当我访问 localhost:8080 时,将记录 docker 网络网关的 ip (172.21.0.1)。
是否可以将我的客户端 IP 地址传递给 docker 容器?
谢谢你

最佳答案

您可以在 docker 运行时将主机 ip 作为环境变量传递,然后在 php 中使用 $_ENV['your_env_name'] 获取它。 ;

# GET & SET HOST IP
# double check this on the system you're working on.
# should work on most linux env
# Adjust NR=1 or NR=2 NR=3 depending on the ip addresses returned
export HOST_IP=$(echo "$(ifconfig)" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk "NR==7{print;exit}");
# PASS HOST IP AS ENV
docker run -it -d -p 8080:8080 -e HOST_IP=$HOST_IP --name yourname docker:image;
// Your php script
echo $_ENV['HOST_IP'];

关于Docker:获取容器中的客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62671411/

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