You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python SDK判断Azure公网IP是否已关联资源

获取Azure孤立公网IP地址(未关联资源)的Python SDK实现

要判断Azure公网IP是否已关联资源,核心是检查公网IP对象的ip_configuration属性:

  • 当公网IP关联了VM网卡、负载均衡等资源时,ip_configuration会包含关联资源的ID及相关配置信息;
  • 若未关联任何资源,该属性为None,这类IP就是你要找的“孤立公网IP”。

基于你提供的SDK初始化代码,扩展实现筛选逻辑如下:

from azure.mgmt.network import NetworkManagementClient
from azure.identity import DefaultAzureCredential

SUBSCRIPTION_ID = "你的订阅ID"

# 初始化网络管理客户端
credential = DefaultAzureCredential()
network_client = NetworkManagementClient(credential, SUBSCRIPTION_ID)

# 获取订阅下所有公网IP
public_ip_list = network_client.public_ip_addresses.list_all()

# 筛选未关联资源的孤立公网IP
isolated_public_ips = []
for public_ip in public_ip_list:
    # 通过ip_configuration是否为空判断关联状态
    if not public_ip.ip_configuration:
        isolated_public_ips.append({
            "名称": public_ip.name,
            "公网IP地址": public_ip.ip_address,
            "资源组": public_ip.id.split("/")[4],
            "区域": public_ip.location
        })

# 打印结果
print("孤立公网IP列表:")
for ip_info in isolated_public_ips:
    print(f"名称: {ip_info['名称']}, IP: {ip_info['公网IP地址']}, 资源组: {ip_info['资源组']}, 区域: {ip_info['区域']}")

补充说明

  • 认证方式可根据实际场景替换:比如使用Service Principal认证时,需用ClientSecretCredential并传入租户ID、客户端ID、客户端密钥;
  • public_ip.id的格式为/subscriptions/{订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.Network/publicIPAddresses/{IP名称},因此用split("/")[4]可以直接提取资源组名称;
  • 若需要更详细的关联信息(比如关联的具体资源类型),可在ip_configuration不为空时,解析其id字段进一步获取。

内容的提问来源于stack exchange,提问作者Manjunath Rao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:03