2013-06-03 135 views
2

將雲服務與特定虛擬網絡關聯時,實例會自動從選定的子網範圍獲取IP。在虛擬網絡中獲取IP地址

有沒有辦法從實例本身中動態地知道這個IP?如果是這樣,創建實例後立即可以獲得這些信息,例如在啓動任務執行時?

如果沒有,是否有方法可以在實例創建後的任何時候從實例外部以編程方式獲取此IP?

我更喜歡PowerShell解決方案,但任何事情都可以。

謝謝。

回答

1

如果來自實例,則在啓動時分配IP地址。因此,在執行啓動任務(PaaS/Cloud Service)時,您可以通過列舉網卡來確定IP地址。或者獲得IP端點。

樣本的PowerShell(它從未得到過測試)將是這個樣子:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.WindowsAzure.ServiceRuntime") 
$ipEndpoint = [Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment]::CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint 

現在你有$ipEndpoint變量,它是.NET類型IPEndpoint的,並擁有虛擬機的本地IP地址。

+0

不幸的是,這給了我內部的局域網IP(與我做ipconfig時得到的一樣),而不是虛擬網絡IP。 –

+1

你是什麼意思的「虛擬網絡IP」?它爲您提供直接IP地址(或DIP),而不是部署的虛擬IP地址(VIP,公衆名稱)。如果您設置了跨網絡連接,還會有VNet網關的公共IP地址。所以請更好地解釋你需要的確切的IP地址。 – astaykov

+0

虛擬網絡中的IP。 –