Dns
有沒有辦法獲取實例的公共 DNS 地址?
我有一個項目,每次使用目前實例的公共 DNS 地址啟動 EC2 實例時,我都需要更新配置文件。我將為此使用 Perl 或 Sed,所以這不是真正的問題,但真正的問題是:有沒有一種方法可以確定實例的公共 DNS 地址?是否有我可以從實例訪問的 EC2 api 來確定它?
有。從實例內部,您可以執行:
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
附帶說明一下,您可以對照 Internet 上的非 AWS 站點仔細檢查它,例如http://ip4.me
#!/bin/bash pubip=$( curl http://ip4.me 2>/dev/null | sed -e 's#<[^>]*>##g' | grep '^[0-9]' ) echo $pubip
這通常可以檢查任何 NATed 系統的“公共 IP”,或者找到您的公共代理 IP 等。
這是一個很好的連結,可以閱讀您可以從亞馬遜 API 獲得的資訊類型: http ://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your- amazon-ec2-instances/