2013-02-06 79 views

回答

2

基本上你會得到實例和公共IP-s,那麼你將比較實例是否包含任何公共IP地址。

下面是代碼,將做到這一點對你:

   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 - 謝謝這正是我一直在尋找。 – Eskimo

相關問題