2013-02-06 56 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

相关问题