예제 #1
0
        public static SimplifiedNic GetNicDetails(String accessToken, ComputeVm Vm)
        {
            string authToken = "Bearer" + " " + accessToken;
            var client = new WebClient();
            client.Headers.Add("Authorization", authToken);
            client.Headers.Add("Content-Type", "application/json");

            var nic = Vm.properties.networkProfile.networkInterfaces.FirstOrDefault();
            string nicLink = nic.id;
            String nicUrl = String.Format("https://management.azure.com{0}{1}", nicLink, "?api-version=2015-05-01-preview");
            String nicText = client.DownloadString(nicUrl);
            //ComputeVms rgCompVms = JsonConvert.DeserializeObject<ComputeVms>(rgVmsText);
            ArmRest.Models.NetworkInterfaceDetails.RootObject nicObj = JsonConvert.DeserializeObject<ArmRest.Models.NetworkInterfaceDetails.RootObject>(nicText);

            String InternalIpAddress = nicObj.properties.ipConfigurations.FirstOrDefault().properties.privateIPAddress;

            String PublicIpLink = nicObj.properties.ipConfigurations.FirstOrDefault().properties.publicIPAddress.id;
            String publicIpUrl = String.Format("https://management.azure.com{0}{1}", PublicIpLink, "?api-version=2015-05-01-preview");
            String publicIpText = client.DownloadString(publicIpUrl);

            ArmRest.Models.PublicIpAddress.RootObject publicIpAddressObj = JsonConvert.DeserializeObject<ArmRest.Models.PublicIpAddress.RootObject>(publicIpText);

            SimplifiedNic thisSimplifiedNic = new SimplifiedNic();
            thisSimplifiedNic.InternalIpAddress = InternalIpAddress;

            String PublicIpAddress = null;
            try
            {
                PublicIpAddress = publicIpAddressObj.properties.ipAddress;
                thisSimplifiedNic.PublicIpAddress = PublicIpAddress;
            }
            catch
            { }

            try
            {
                thisSimplifiedNic.PublicHostName = publicIpAddressObj.properties.dnsSettings.fqdn;
            }
            catch
            { }

            return thisSimplifiedNic;
        }