2011-09-06 10 views

답변

4

AWS SDK for PHP을 사용하고 있습니까? 그렇다면, 당신은 다음과 같은 것을 할 수 있다고 생각 : 당신이 그것을 조금 수정해야하므로

$response = $ec2_account->describe_instances(); 

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

이것은 분명히 모든 EC2 인스턴스, 당신이 원하는뿐만 아니라 하나를 반환합니다. 불행히도, 나는 PHP 녀석이 아니므로 독자를위한 운동으로 남아 있습니다 :-).

describe_instances()here에 대한 설명서를 찾을 수 있습니다.

편집 :

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

그러나 다시이 아닌 PHP 사람 : 나는이 같이 보일 것이다 생각 .

3

$_SERVER['SERVER_ADDR']을 의미합니까?


편집 : http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?concepts.html

확인하려면 인스턴스의 공공 및 민간 IP 주소

는 다음의 쿼리 요청을 구축합니다.

https://ec2.amazonaws.com/?Action=DescribeInstances&InstanceId.1=인스턴스 ID & ... authparameters ... 이것은 XML 응답을 줄 것이다

. 공용 IP 주소를 판별하려면 해당 응답에 ipAddress에 지정된 IP 주소를 사용하십시오.

CURL로 이와 같은 작업을 수행 할 수 있습니다.

+0

아니요, 웹 서버의 IP 주소를 알려주겠습니다. 웹 서버가 시작하는 EC2 인스턴스의 IP 주소를 원합니다. – larsmoa

+0

답변이 업데이트되었습니다. – CodeCaster

+0

유효한 서명이 없으면 작동하지 않을 것이라고 생각합니다 (http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using-query-api.html 참조). 그렇기 때문에 Amazon SDK 또는 이와 비슷한 것을 사용하는 것이 좋습니다. –

4
curl http://169.254.169.254/latest/meta-data/public-ipv4 
+0

마음은 설명합니까? 아니면 적어도 뭔가 설명하는 링크? http : // serverfault.com/a/427022/129574 –

1

다음은 '인스턴스 ID'

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

의 ID가 포함 된 인스턴스의 전체 인스턴스에 대한 설명을 받아야하고 다음 인스턴스에서 공용 IP를 사로 잡고

echo $response->get('Reservations')[0]['Instances'][0]['PublicIpAddress'] 
+0

방금이 코드를 테스트했는데 PublicIpAddress 필드가 내 전화에서 누락되었습니다.하지만 콘솔에 내 인스턴스에 공개 IP 주소가 없어서 마일리지가 다를 수 있습니다. – maddios

관련 문제