在bash脚本中使用公共IP

问题描述 投票:0回答:3

我正在写一个bash脚本来发送一个动态启动的ec2实例的用户数据。脚本需要使用实例的ip,但在实例启动并运行脚本之前,我没有这个ip。所以这个脚本应该是这样的

"#!/bin/bash
curl -X POST .....blablabla.........
{
     "serverIp": HERE I NEED THE CURRENT INSTANCE IP,
}'

我知道,做卷曲到 http:/127.0.0.1latestmeta-datapublic-ipv4。 你得到了ip,但考虑到其他因素,我不能用http调用本身。

有没有什么简单的方法可以从bash脚本中检索到ip?

bash amazon-ec2 ip
3个回答
1
投票

使用curl

IP_ADDR=`curl -s http://whatismyip.akamai.com/` echo $IP_ADDR

其他答案 此处


2
投票

插手呼唤呼唤来策动。

#!/bin/bash
curl -X POST .....blablabla.........
{
     "serverIp": `curl -s http://169.254.169.254/latest/meta-data/public-ipv4`,
}'

0
投票

用dig:

#!/bin/bash

serverIp=$(dig +time=1 +tries=1 +retry=1 +short myip.opendns.com @resolver1.opendns.com)
echo $serverIp
© www.soinside.com 2019 - 2024. All rights reserved.