2010-04-21 70 views
4

我有,當你輸入網址的網站返回網站的服務器功能:獲取網站的服務器

private string GetWebServer() 
{ 
    string server = string.Empty; 

    //get URL 
    string url = txtURL.Text.Trim().ToLower(); 
    if (!url.StartsWith("http://") && !url.StartsWith("https://")) 
     url = "http://" + url; 

    HttpWebRequest request = null; 
    HttpWebResponse response = null; 

    try 
    { 
     request = WebRequest.Create(url) as HttpWebRequest; 
     response = request.GetResponse() as HttpWebResponse; 

     server = response.Headers["Server"]; 
    } 
    catch (WebException wex) 
    { 
     server = "Unknown"; 
    } 
    finally 
    { 
     if (response != null) 
     { 
      response.Close(); 
     } 
    } 

    return server; 
} 

我想也可以從IP獲取網站的服務器地址而不是網站的網址。但是如果我輸入IP地址,則會出現一條錯誤消息:「無效的URI:URI的格式無法確定。」當調用WebRequest.Create(url)。

有人知道我怎麼可以修改這個來完成我想要的?

+0

你是否試圖從域內的客戶端獲取服務器名稱? – 2010-04-21 14:51:29

+0

我不確定你的意思。 – Steven 2010-04-21 14:54:20

+0

您是否試圖獲取您在家中正在瀏覽的某個網站的服務器名稱,例如www.google.com,或者您是否試圖獲取您所連接的域名服務器的名稱? – 2010-04-21 14:58:38

回答

1

您在使用IP地址時是否使用了同樣的方法?如果您的IP地址前面沒有「http://」,則會引發此錯誤。

2

否則,你可以從IP地址查找名稱,然後在其他呼叫使用地址:

System.Net.Dns.GetHostEntry("127.0.0.1").HostName.ToString() 
1

一個單一的IP可以用於多個領域。你將不會有1:1映射。你要做的是反向DNS查詢。有許多Web服務提供了從IP提供的不完整的域列表。一旦我不得不使用它們的組合來獲得更完整的列表。

這裏是這類網站的一個小清單:

  1. http://remote.12dt.com/
  2. http://www.guerrilladns.com/

而且我已經使用下面的DNS查詢也發現由同一個IP服務的其他領域:

  1. http://www.robtex.com/dns/