wget 解析为与主机不同的 IP
wget resolves to a different IP than host
我有一个 shell 脚本,我在其中使用 host
获取目标站点的 IP 以更新 ufw
并允许到该 IP 的出站流量。然而,当我对同一个基础 URL 进行后续 wget
调用时,它解析为不同的 IP,因此被 ufw
阻止。只是为了测试,我尝试对 URL 执行 ping 操作,结果 return 使用了另一个不同的第三个 IP。
我们在 ufw
中默认阻止所有出站流量,并且只启用我们需要出站的流量,所以我需要脚本来更新正确的 IP,这样我就可以 wget
内容。每个实例中的 IP(host
与 wget
)始终相同,但它们 return 彼此的值不同,因此我认为这不仅仅是 DNS 问题。如何获得一致的 IP 来更新防火墙,以便后续的 wget
请求成功执行?作为测试,我禁用了防火墙,并且能够从 URL 成功下载,所以问题肯定在于获取一致的 IP 指向。
HOSTNAME=<name of site to resolve>
LOGFILE=<logfile path>
Current_IP=$(host $HOSTNAME | head -n 1 | cut -d " " -f 4)
#this echoes the correct value
echo $Current_IP
if [ ! -f $LOGFILE ]; then
/usr/sbin/ufw allow out from any to $Current_IP
echo $Current_IP > $LOGFILE
echo New IP address found and logged >> ./download.log
else
Old_IP=$(cat $LOGFILE)
if [ "$Current_IP" = "$Old_IP" ] ; then
echo IP address has not changed >> ./download.log
else
/usr/sbin/ufw delete allow out from any to $Old_IP
/usr/sbin/ufw allow out from any to $Current_IP
echo $Current_IP > $LOGFILE
echo IP Address was updated in ufw >> ./download.log
fi
fi
更新防火墙后,后续的 wget
到 HOSTNAME
会尝试访问与刚刚更新的不同的 IP。
原来区别是“www.”。当我解析 host
时,我没有使用 www,而当我使用 wget
时,我使用的是 www,因此他们为这个特定站点解析了不同的 IP。
我有一个 shell 脚本,我在其中使用 host
获取目标站点的 IP 以更新 ufw
并允许到该 IP 的出站流量。然而,当我对同一个基础 URL 进行后续 wget
调用时,它解析为不同的 IP,因此被 ufw
阻止。只是为了测试,我尝试对 URL 执行 ping 操作,结果 return 使用了另一个不同的第三个 IP。
我们在 ufw
中默认阻止所有出站流量,并且只启用我们需要出站的流量,所以我需要脚本来更新正确的 IP,这样我就可以 wget
内容。每个实例中的 IP(host
与 wget
)始终相同,但它们 return 彼此的值不同,因此我认为这不仅仅是 DNS 问题。如何获得一致的 IP 来更新防火墙,以便后续的 wget
请求成功执行?作为测试,我禁用了防火墙,并且能够从 URL 成功下载,所以问题肯定在于获取一致的 IP 指向。
HOSTNAME=<name of site to resolve>
LOGFILE=<logfile path>
Current_IP=$(host $HOSTNAME | head -n 1 | cut -d " " -f 4)
#this echoes the correct value
echo $Current_IP
if [ ! -f $LOGFILE ]; then
/usr/sbin/ufw allow out from any to $Current_IP
echo $Current_IP > $LOGFILE
echo New IP address found and logged >> ./download.log
else
Old_IP=$(cat $LOGFILE)
if [ "$Current_IP" = "$Old_IP" ] ; then
echo IP address has not changed >> ./download.log
else
/usr/sbin/ufw delete allow out from any to $Old_IP
/usr/sbin/ufw allow out from any to $Current_IP
echo $Current_IP > $LOGFILE
echo IP Address was updated in ufw >> ./download.log
fi
fi
更新防火墙后,后续的 wget
到 HOSTNAME
会尝试访问与刚刚更新的不同的 IP。
原来区别是“www.”。当我解析 host
时,我没有使用 www,而当我使用 wget
时,我使用的是 www,因此他们为这个特定站点解析了不同的 IP。