你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
拥有 NIC ID 后,请运行 az network nic show
以获取其信息。 此处不需要资源组,因为资源组名称包含在 Azure 资源 ID 中。
az network nic show --ids $nicId
此命令显示 VM 网络接口的所有信息。 此数据包括 DNS 设置、IP 信息、安全设置和 MAC 地址。 以下查询演示如何获取公共 IP 地址和子网对象 ID。
az network nic show --ids $nicId \
--query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
此命令显示一个 JSON 对象,该对象具有提取的值的自定义密钥(“IP”和“子网”。 虽然这种输出样式对命令行工具没有用处,但它有助于人工可读性,并可用于自定义脚本。
若要使用命令行工具,请更改命令以删除自定义 JSON 键并输出为 tsv
。 该 read
命令通过将结果加载到多个变量中来处理这种输出样式。 由于两个值显示在单独的行上, read
因此命令分隔符必须设置为空字符串,而不是非换行空格的默认值。
read -d '' ipId subnetId <<< $(az network nic show \
--ids $nicId \
--query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
如果不想使用 Bash read
或 PowerShell -split
命令,可以单独设置每个变量。
$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv
使用公共 IP 对象 ID 查找公共 IP 地址并将其存储在 shell 变量中。 子网 ID 用于演示如何在 Azure CLI 中查询和存储多个值。 因此,本教程的其余部分不需要它。
vmIpAddress=$(az network public-ip show --ids $ipId \
--query ipAddress \
-o tsv)
现在,VM 的 IP 地址存储在 shell 变量中。 继续检查它是否与最初连接到 VM 的值相同。
echo $vmIpAddress