Определите общедоступный IP-адрес экземпляра Amazon EC2 по идентификатору экземпляра. - PullRequest
1 голос
/ 06 сентября 2011

Мы пишем скрипт PHP, который создает и запускает экземпляр Amazon EC2.Мы хотели бы определить публичный IP-адрес экземпляра, который мы создаем из PHP.Есть ли функция API для этого?Я смог найти Instance.getPublicIpAdress () для Java , но не смог найти аналогичную функцию для PHP.

Ответы [ 4 ]

4 голосов
/ 06 сентября 2011

Используете ли вы AWS SDK для PHP ? Если это так, я думаю, вы можете сделать что-то вроде следующего:

$response = $ec2_account->describe_instances();

foreach ($response->body->reservationSet->item as $item)
{
  $ipAddress = (string) $item->instancesSet->item->ipAddress;
}

Это, очевидно, возвращает каждый EC2-экземпляр, а не только тот, который вы хотите, поэтому вам нужно немного его уточнить. К сожалению, я не очень-то разбираюсь в PHP, поэтому это оставлено читателю в качестве упражнения: -).

Документацию по describe_instances() можно найти здесь .

РЕДАКТИРОВАТЬ: Я думаю это будет выглядеть примерно так:

$response = $ec2_account->describe_instances(array("InstanceId"->"i-123456"));

Но опять же, не парень по PHP.

4 голосов
/ 15 мая 2012
curl http://169.254.169.254/latest/meta-data/public-ipv4
3 голосов
/ 06 сентября 2011

Вы имеете в виду $_SERVER['SERVER_ADDR']?


Редактировать: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?concepts.html

Чтобы определить публичные и частные IP-адреса вашего экземпляра

Создайтеследующий запрос Query.

https://ec2.amazonaws.com/?Action=DescribeInstances&InstanceId.1=instance-id&...authparameters...

Это даст ответ XML.Чтобы определить публичный IP-адрес, используйте IP-адрес, указанный в ответе ipAddress.

Вы можете сделать что-то подобное с CURL.

1 голос
/ 31 августа 2015

Следующее должно получить полное описание экземпляра для экземпляра с идентификатором 'instance-id'

$response = $ec2Client->describeInstances(array('InstanceIds' => array('instance-id')));

, а следующее извлечет публичный ip из экземпляра

echo $response->get('Reservations')[0]['Instances'][0]['PublicIpAddress']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...