0
Я разрабатываю приложение MVC.ASP.Net. Я пытаюсь найти публичный IP-адрес соответствующей страны.Производительность: получить общедоступный IP-адрес в C#
Public static string GetIP()
{
string IPAddress = null;
IPAddress = WDA.CMS.Services.CacheService.getPublicIP;
using (System.Net.WebClient wc = new System.Net.WebClient())
{
// Take long time to respond.
IPAddress = wc.DownloadString("http://icanhazip.com/");
}
if (!string.IsNullOrEmpty(IPAddress))
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("(\\d{1,3}\\.){3}\\d{0,3}");
if (IPAddress != null)
{
if (regex.IsMatch(IPAddress))
{
IPAddress = regex.Match(IPAddress).Value.ToString();
}
else
{
IPAddress = "";
}
regex = null;
}
}
return IPAddress;
}
// В случае США: 209.105.127.206
Эта функция работает правильно, но я пытаюсь улучшить время отклика, как эта функция вызывается много раз. Возможно ли изменить эту функцию, чтобы быстрее получить результат. Любая помощь/предложения будут высоко оценены.
Это будет звучать немного глупо, но разве ваш публичный IP-адрес не останется прежним? Я только попытался бы загрузить его один раз и кэшировать его где-нибудь, если он изменится, сохраните его с отметкой времени и попробуйте каждые n минут/дней независимо от того, –
Если службе требуется много времени, вы не можете много сделать it –
Кэш предыдущие результаты. Используйте автономную базу данных. Увеличьте скорость вашего интернет-соединения. Купить более быстрый процессор. Улучшите свою оперативную память. – dotctor