【问题标题】:How to use powershell to get EC2 instance public IP and private IP address? And list the IPs for these instances如何使用powershell获取EC2实例公网IP和私网IP地址?并列出这些实例的 IP
【发布时间】:2018-03-01 03:07:51
【问题描述】:

如果我知道 EC2 实例 ID 和 EC2 实例名称,

如何使用powershell脚本通过这些信息获取EC2实例公网IP和私网IP地址?并列出这些实例的 IP

【问题讨论】:

    标签: powershell amazon-ec2


    【解决方案1】:

    如果您还没有这样做。

    如何下​​载和安装 AWs PowerShell 工具并使用其本机 cmdlet 提取此信息。

    适用于 Windows PowerShell 的 AWS 工具

    适用于 Windows PowerShell 的 AWS 工具让开发人员和 管理员从 Windows PowerShell 管理他们的 AWS 服务 脚本环境。现在您可以使用 用于管理 Windows 的相同 Windows PowerShell 工具 环境

    https://aws.amazon.com/powershell

    适用于 Windows PowerShell 的 AWS 工具用户指南

    适用于 Windows PowerShell 的 AWS 工具是一组 PowerShell cmdlet 构建在 AWS 开发工具包公开的功能之上 。网。适用于 Windows PowerShell 的 AWS 工具使您能够编写脚本 从 PowerShell 命令行对 AWS 资源进行操作。 尽管 cmdlet 是使用服务客户端和 来自 SDK 的方法,cmdlet 提供了一个惯用的 PowerShell 有指定参数和处理结果的经验。为了 例如,PowerShell 工具的 cmdlet 支持 PowerShell 流水线——也就是说,您可以将 PowerShell 对象通过管道传输到 在 cmdlet 之外。

    适用于 Windows PowerShell 的 AWS 工具在启用方式方面非常灵活 您处理凭证,包括对 AWS Identity 的支持和 访问管理 (IAM) 基础设施;您可以将这些工具与 IAM 一起使用 用户凭证、临时安全令牌和 IAM 角色。 AWS Windows PowerShell 工具支持相同的服务集和 SDK 支持的区域。

    http://awsdocs.s3.amazonaws.com/powershell/latest/aws-pst-ug.pdf

    (Get-EC2Instance -Filter $filter_reservation).Instances

    InstanceId : i-5203422c
    ImageId : ami-7527031c
    State : Amazon.EC2.Model.InstanceState
    PrivateDnsName : ip-10-251-50-12.ec2.internal
    PublicDnsName : ec2-198-51-100-245.compute-1.amazonaws.com
    StateTransitionReason :
    KeyName : myPSKeyPair
    AmiLaunchIndex : 0
    ProductCodes : {}
    InstanceType : t1.micro
    LaunchTime : 12/11/2013 6:47:22 AM
    Placement : Amazon.EC2.Model.Placement
    KernelId :
    RamdiskId :
    Platform : Windows
    Monitoring : Amazon.EC2.Model.Monitoring
    SubnetId :
    VpcId :
    PrivateIpAddress : 10.251.50.12
    PublicIpAddress : 198.51.100.245
    StateReason :
    Architecture : x86_64
    RootDeviceType : ebs
    RootDeviceName : /dev/sda1
    BlockDeviceMappings : {/dev/sda1}
    VirtualizationType : hvm
    InstanceLifecycle :
    SpotInstanceRequestId :
    License :
    ClientToken :
    Tags : {}
    SecurityGroups : {myPSSecurityGroup}
    SourceDestCheck : False
    Hypervisor : xen
    NetworkInterfaces : {}
    IamInstanceProfile :
    EbsOptimized : False
    

    另见:

    AWS EC2 Windows 实例 – 获取实例详细信息 https://aaronsaikovski.wordpress.com/2015/01/05/aws-ec2-windows-instance-get-instance-details/

    如何从 ec2 实例中获取实例 ID?我怎样才能找到 从 ec2 实例中取出 ec2 实例的实例 ID? How to get the instance id from within an ec2 instance?

    【讨论】:

      【解决方案2】:

      要查看单个 EC2 实例的私有 IP,请运行此命令,替换您的特定 InstanceId 和区域:

      (Get-Ec2Instance -InstanceId i-9999999999999999 -Region us-east-1).Instances.PrivateIpAddress
      

      对于公众(如果有的话)使用:

      (Get-Ec2Instance -InstanceId i-9999999999999999 -Region us-east-1).Instances.PublicIpAddress
      

      如果 EC2 实例有一个公共 IP,并且您想知道它是弹性 IP(静态)还是从 AWS 公共 IP 池分配的,您可以检查 NetworkInterface 关联的 OwnerId。对于弹性 IP,OwnerId 将是您的帐户 ID;对于从 AWS IP 池分配的公共 IP,它将是带有“amazon”的东西,例如“amazon-ebs”或只是“amazon”:

      $AccountId = Get-AWSAccount
      $ec2 = (Get-Ec2Instance -InstanceId i-99999999999999999 -Region us-east-1).Instances
      if ($ec2.PublicIpAddress) {
          if ($ec2.NetworkInterfaces.Association.IpOwnerId -like $AccountId) {
              Write-Output ("Elastic IP: {0}" -f $ec2.PublicIpAddress)
          }
          else {
              Write-Output ("AWS Public IP Pool {0}" -f $ec2.PublicIpAddress)
          }
      }
      

      请注意,如果您的 EC2 使用的是 AWS 公共 IP 池,则在实例关闭时不会分配任何 IP 池。它在关机时释放,并在实例重新开机时获得一个新的。详情请参阅Amazon EC2 Instance IP Addressing

      【讨论】:

        猜你喜欢
        • 2014-09-16
        • 1970-01-01
        • 2020-01-23
        • 1970-01-01
        • 2016-12-05
        • 2015-06-07
        • 2022-07-29
        • 1970-01-01
        • 2019-12-17
        相关资源
        最近更新 更多