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