Is it possible for a virtual machine to communicate with another virtual machine created in a different location using internal IP ?
How to obtain the external vip of a azure virtual machine after login to that paticular virtual machine ?
Having in mind the first comment to the question, and the fact that it is not yet updated with more details, here are my two cents.
The only way to communicate via internal IP address is to create 2 sets of Virtual Networks, and connect both of them to on-premises Virtual Network. That is the only way I see that the two VMs, hosted in different geographic location to see each other.
As for obtainign the external VIP of a Virtual machine, you can use the Windows Azure Management API (GetVirtualMachine) to get the VPI of a VM programatically. Or just trace the [vmname].cloudapp.net to see the IP address.