将云服务与特定虚拟网络相关联时,实例会自动从选定的子网范围获取 IP。
有没有办法从实例本身动态地知道这个 IP?如果是这样,该信息是否在实例创建后立即可用,例如在执行启动任务时?
如果没有,是否有办法在创建实例后的任何时间以编程方式从实例外部获取此 IP?
我更喜欢 PowerShell 解决方案,但任何事情都可以。
谢谢。
将云服务与特定虚拟网络相关联时,实例会自动从选定的子网范围获取 IP。
有没有办法从实例本身动态地知道这个 IP?如果是这样,该信息是否在实例创建后立即可用,例如在执行启动任务时?
如果没有,是否有办法在创建实例后的任何时间以编程方式从实例外部获取此 IP?
我更喜欢 PowerShell 解决方案,但任何事情都可以。
谢谢。
如果您来自实例,则 IP 地址是在引导时分配的。因此,在执行启动任务(PaaS / 云服务)时,您只需枚举网卡即可确定 IP 地址。或获取 en IP Endpoint。
一个示例 powershell(从未经过测试)看起来像这样:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.WindowsAzure.ServiceRuntime")
$ipEndpoint = [Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment]::CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint
现在您有了$ipEndpoint
.NET 类型的变量IPEndpoint
并保存了 VM 的本地 IP 地址。