简体   繁体   中英

Is there any python API which can get the IP address (internal or external) of Virtual machine in Azure

I want to control the VMs in Azure with python SDK. Is there any API that can get a VM's IP address (internal or external) according to VM's name?

Based on my understanding, I think you want to get the public & private ip addresses of a Azure VM using Azure SDK for Python.

For getting these ip addresses (internal & external), please see the code below.

from azure.mgmt.network import NetworkManagementClient, NetworkManagementClientConfiguration

subscription_id = '33333333-3333-3333-3333-333333333333'

credentials = ...

network_client = NetworkManagementClient(
    NetworkManagementClientConfiguration(
        credentials,
        subscription_id
    )
)

GROUP_NAME = 'XXX'
VM_NAME = 'xxx'
PUBLIC_IP_NAME = VM_NAME

public_ip_address = network_client.public_ip_addresses.get(GROUP_NAME, PUBLIC_IP_NAME)
print(public_ip_address.ip_address)
print(public_ip_address.ip_configuration.private_ip_address)

As reference, you can refer to the documents below to know the details of the code above.

  1. Resource Management Authentication using Python for the variable credentials .
  2. Create the management client for the variable network_client .
  3. More details for the azure.mgmt.network package, please see http://azure-sdk-for-python.readthedocs.io/en/latest/ref/azure.mgmt.network.html .

For the people that don't have public IP assigned to their VM there is a way to get the private IP without creating the public IP.

from azure.mgmt.network import NetworkManagementClient, NetworkManagementClientConfiguration

subscription_id = '' 
credentials = UserPassCredentials(
    'user@yes.com',
    'password',
)

network_client = NetworkManagementClient(
    credentials,
    subscription_id
)

private_ip = network_client.network_interfaces.get(GROUP_NAME, NETWORK_INTERFACE_NAME).ip_configurations[0].private_ip_address

This works and is tested on azure-sdk-for-python version 2.0.0rc6.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM