Определите отдельные Azure сервисные машины приложения (особенно за балансировщиком нагрузки) - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу идентифицировать отдельные Azure машины службы приложений, чтобы я мог записывать информацию в базу данных. Я думал, что буду использовать локальный IP-адрес машины, используя функцию ниже, но я получаю пустую строку, возвращенную обратно. Код работает для виртуальных машин, но не для служб приложений. Любые мысли (особенно если они в конечном итоге стоят за балансировщиком нагрузки и запускают идентичный код. (Любая строка в порядке ... это не должен быть IP-адрес)

    public static string GetLocalIpAddress()
    {
        UnicastIPAddressInformation mostSuitableIp = null;
        var networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
        foreach (var network in networkInterfaces)
        {
            if (network.OperationalStatus != OperationalStatus.Up)
                continue;

            var properties = network.GetIPProperties();
            if (properties.GatewayAddresses.Count == 0)
                continue;

            foreach (var address in properties.UnicastAddresses)
            {
                if (address.Address.AddressFamily != AddressFamily.InterNetwork)
                    continue;

                if (IPAddress.IsLoopback(address.Address))
                    continue;

                if (!address.IsDnsEligible)
                {
                    if (mostSuitableIp == null)
                        mostSuitableIp = address;
                    continue;
                }

                // The best IP is the IP got from DHCP server  
                if (address.PrefixOrigin != PrefixOrigin.Dhcp)
                {
                    if (mostSuitableIp == null || !mostSuitableIp.IsDnsEligible)
                        mostSuitableIp = address;
                    continue;
                }
                return address.Address.ToString();
            }
        }
        return mostSuitableIp != null
            ? mostSuitableIp.Address.ToString()
            : "";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...