Answers:
有。在实例内部,您可以运行:
curl http://169.254.169.254/latest/meta-data/public-ipv4
要获取公共DNS主机名,可以将其更改为:
curl http://169.254.169.254/latest/meta-data/public-hostname
您也可以获取实例的私有IP:
curl http://169.254.169.254/latest/meta-data/local-ipv4
附带说明一下,您可以针对互联网上的非AWS网站(例如http://ip4.me)再次进行检查。
#!/bin/bash
pubip=$( curl http://ip4.me 2>/dev/null | sed -e 's#<[^>]*>##g' | grep '^[0-9]' )
echo $pubip
通常,这将可以检查任何经过NAT的系统的“公共IP”,或查找您的公共代理IP等。
以下是一个很好的链接,以阅读您可以从Amazon的API获取的信息类型:http : //www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your-亚马逊EC2实例/
我在.bashrc中定义此函数以检索公共ip和dns:
export PUBLIC_DNS=`curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null`
export PUBLIC_IP=`curl http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null`
function get-pub() {
if [ $# -ne 1 ]; then
echo "Invalid number of arguments"
return 1
else
case $1 in
dns)
echo $PUBLIC_DNS
;;
ip)
echo $PUBLIC_IP
;;
*)
echo $"Usage: get-pub {dns|ip}"
return 2
esac;
fi
return 0
}
PUBLIC_HOSTNAME="$(curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null)"
:)先生,您是金属。