从IP地址获取网站的服务器

时间:2010-04-21 14:40:21

标签: c# asp.net httpwebrequest webrequest

我有一个函数,当您输入网站的网址时返回网站的服务器:

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)。

有人知道如何修改它以实现我的目标吗?

3 个答案:

答案 0 :(得分:2)

否则,您可以从IP地址中查找名称,然后在其他呼叫中使用该地址:

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

答案 1 :(得分:1)

使用IP地址时是否使用相同的方法?如果您没有在IP地址前加上“http://”,则会抛出此错误。

答案 2 :(得分:1)

单个IP可以服务多个域。您将没有1:1映射。您要做的是反向DNS查找。有许多Web服务提供从IP提供的域的不完整列表。一旦我不得不使用它们的组合来获得更完整的列表。

以下是此类网站的一个小列表:

  1. http://remote.12dt.com/
  2. http://www.guerrilladns.com/
  3. 我已经使用了以下DNS查找,该查找还查找了由同一IP服务的其他域:

    1. http://www.robtex.com/dns/
相关问题