C# 如何获取已分配弹性IP的EC2实例列表?

C# 如何获取已分配弹性IP的EC2实例列表?,c#,amazon-web-services,ec2-api-tools,C#,Amazon Web Services,Ec2 Api Tools,如何获取已使用C#分配静态公共弹性IP的EC2实例列表 基本上,您将获得实例和公共IP-s,然后您将比较实例是否包含任何公共IP地址 以下是将为您执行此操作的代码: AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); //Create instance request DescribeInstancesRequest request =

如何获取已使用C#分配静态公共弹性IP的EC2实例列表

基本上,您将获得实例和公共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)));
amazonec2ec2=AWSClientFactory.CreateAmazonEC2Client();
//创建实例请求
DescribeInstancesRequest请求=新的DescribeInstancesRequest();
descripbeInstancesResponse=ec2.descripbeInstances(请求);
//创建ip地址请求枚举
DescribeAddress请求daRequest=新的DescribeAddress请求();
descripbeAddressResponse daResponse=ec2.descripbeAddress(daRequest);
var publicIps=从daResponse.DescribeAddressResult.Address中的IP选择ips.PublicIp;
//具有公共IP的实例列表
List publicIpInstances=新列表();
//迭代实例并检查它们是否具有公共IP
foreach(响应中的保留ri.DescribeInstancesResult.Reservation)
AddRange(ri.RunningInstance.Where(inst=>publicIps.Contains(inst.IpAddress));

先生-谢谢,这正是我要找的。