import boto3 import botocore.exceptions as exceptions from pprint import pprint profile_list = { "gdb-apollo-dev": "Apollo", "gdb-artistapp-dev": "RTI", "gdb-core-dev": "Core", "gdb-databricks-dev": "Delphi", "gdb-datasci-dev": "Data science team", "gdb-delphi-dev": "Delphi", "gdb-infra-dev": "Delphi", "gdb-mct-dev": "Decibel", "gdb-prodhub-dev": "CRM", "gdb-smu-dev": "SMU", "gdb-whitelist-dev": "DNA", "gdb-apollo-prod": "Apollo", "gdb-artistapp-prod": "RTI", "gdb-core-prod": "Core", "gdb-databricks-prod": "Delphi", "gdb-delphi-prod": "Delphi", "gdb-infra-prod": "Delphi", "gdb-mct-prod": "Decibel", "gdb-smu-prod": "SMU", "gdb-whitelist-prod": "DNA", "gdb-whitelist-legacy": "Whitelist", } if __name__ == "__main__": ip_addresses = {} vpc_ranges = {} for p in profile_list.keys(): for region in ['eu-west-1', 'us-east-1']: try: session = boto3.Session(profile_name=p, region_name=region) client = session.client('ec2') response = client.describe_addresses() for address in response['Addresses']: if profile_list[p] in ip_addresses: if "External" in ip_addresses[profile_list[p]]: ip_addresses[profile_list[p]]["External"].append( address['PublicIp']) else: ip_addresses[profile_list[p]]["External"] = [ address['PublicIp'] ] else: ip_addresses[profile_list[p]] = {} ip_addresses[profile_list[p]]["External"] = [ address['PublicIp'] ] response = client.describe_vpcs() for vpc in response['Vpcs']: if profile_list[p] in ip_addresses: if "Internal" in ip_addresses[profile_list[p]]: ip_addresses[profile_list[p]]["Internal"].append( vpc['CidrBlock']) else: ip_addresses[profile_list[p]]["Internal"] = [ vpc['CidrBlock'] ] else: ip_addresses[profile_list[p]] = {} ip_addresses[profile_list[p]]["Internal"] = [ vpc['CidrBlock'] ] except exceptions.ClientError: pass pprint(ip_addresses)