0
我正在开发一个MVC.ASP.Net应用程序。我正在尝试查找各个国家的公共IP地址。性能:获取C#中的公共IP地址#
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分钟/天尝试一次 –
如果服务需要很长时间才能回答,则您可以做的事情不多它 –
缓存以前的结果。使用离线数据库。增加您的互联网连接速度。购买更快的CPU。改进你的RAM。 – dotctor