4

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

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 地址而不是网站的 url 获取网站的服务器。但是如果我输入一个 IP 地址,我会收到一条错误消息“无效的 URI:无法确定 URI 的格式”。调用 WebRequest.Create(url) 时。

有人知道我可以如何修改它来完成我想要的吗?

4

3 回答 3

2

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

System.Net.Dns.GetHostEntry("127.0.0.1").HostName.ToString()
于 2010-04-21T15:19:52.400 回答
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/
于 2010-04-21T15:43:06.993 回答
1

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

于 2010-04-21T15:12:07.387 回答