2013-02-06 4 views

Répondre

2

Fondamentalement, vous obtiendrez des instances et des adresses IP publiques, puis vous comparerez si l'instance contient une adresse IP publique.

Voici le code qui le fera pour vous:

   AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); 

       //Create instance request 
       DescribeInstancesRequest request = new DescribeInstancesRequest(); 
       DescribeInstancesResponse response = ec2.DescribeInstances(request); 

       //Create ip address request enumeration 
       DescribeAddressesRequest daRequest = new DescribeAddressesRequest(); 
       DescribeAddressesResponse daResponse = ec2.DescribeAddresses(daRequest); 
       var publicIps = from ips in daResponse.DescribeAddressesResult.Address select ips.PublicIp; 

       //List of the instances which has public IP 
       List<RunningInstance> publicIpInstances = new List<RunningInstance>(); 

       //Iterate over instances and check if they have public IP 
       foreach (Reservation ri in response.DescribeInstancesResult.Reservation)      
        publicIpInstances.AddRange(ri.RunningInstance.Where(inst => publicIps.Contains(inst.IpAddress))); 
+0

MisterDr - Merci, c'est exactement ce que je cherchais. – Eskimo

Questions connexes