这是一个由两部分组成的问题:
如果是,获取此信息的最佳方式是什么?这是迄今为止我一直在使用的黑客攻击:
EXTERNAL_IP=$(curl -s http://bot.whatismyipaddress.com/)
EXTERNAL_DNS=$(dig +short -x ${EXTERNAL_IP})
答案 0 :(得分:1)
反向查找是可以的,对于IP地址,您可能更喜欢使用gcutil https://developers.google.com/compute/docs/gcutil/tips
EXTERNAL_IP = $(gcutil getinstance --format = csv --zone = [your_zone] [your_instance] | grep external-ip | cut -d“,” - f 2)
答案 1 :(得分:0)
GCE实例当前没有用于其外部IP地址的公共DNS名称。但是现在有一个gcloud compute config-ssh
(docs)命令可以很好地替代。
这会将Host
块插入到您的~/.ssh/config
文件中,其中包含主机密钥的IP地址和配置。
尽管这仅对SSH(以及基于SSH的应用程序(如Mosh和git + ssh)有用),但与DNS相比确实具有一些优势:
没有与DNS一样的缓存/传播延迟
它会预先填充正确的主机密钥,并且即使临时IP地址发生更改,也会以正确的方式检查主机密钥。
示例:
$ gcloud compute config-ssh
...
$ ssh myhost.us-west1-b.surly-koala-232