Русское имя сайта #CSharp
//Преобразует русскоязычную ссылку
Url = new IdnMapping().GetAscii(Url);
//Сайтов с русским именем не существует
//Однако если в адресной строке браузера прописать русские буквы то сам браузер перенаправит на сайт с аннглоизычным именем
//Конвертация русского имени сайта в англоизичное
/// <summary> Проверка сайта на существование </summary>
/// <param name="WebSite"></param>
/// <returns></returns>
public static bool pingWebSite(string WebSite)
{
if (String.IsNullOrWhiteSpace(WebSite))
return false;
if (WebSite.Trim().ToLower().IndexOf("http://") != 0 && WebSite.Trim().ToLower().IndexOf("https://") != 0)
WebSite = "http://" + WebSite.Trim();
WebSite = WebSite.IndexOf("?") > 0 ? WebSite.Substring(0, WebSite.IndexOf("?")) : WebSite;
WebSite = WebSite.IndexOf("&") > 0 ? WebSite.Substring(0, WebSite.IndexOf("&")) : WebSite;
if (String.IsNullOrWhiteSpace(WebSite))
return false;
while (!String.IsNullOrWhiteSpace(WebSite) && (WebSite.Last() == '/' || WebSite.Last() == '\\'))
WebSite = WebSite.Remove(WebSite.Length - 1, 1).Trim();
IdnMapping idn = new IdnMapping();
if (WebSite.Trim().ToLower().IndexOf("http://") == 0)
WebSite = "http://" + idn.GetAscii(WebSite.Remove(0, 7));
if (WebSite.Trim().ToLower().IndexOf("https://") == 0)
WebSite = "https://" + idn.GetAscii(WebSite.Remove(0, 7));
try
{
WebClient client = new WebClient();
Uri uri = new Uri(WebSite);
client.DownloadData(uri);
string text = client.DownloadString(uri);
if (!String.IsNullOrWhiteSpace(text))
return true;
return false;
}
catch (WebException ex)
{
HttpWebResponse response = (System.Net.HttpWebResponse)ex.Response;
if (response != null && response.StatusCode == HttpStatusCode.BadRequest)
return true;
return false;
}
catch (Exception ex)
{
return false;
}
}