我有一个函数,当您输入网站的网址时返回网站的服务器:
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 :(得分: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提供的域的不完整列表。一旦我不得不使用它们的组合来获得更完整的列表。
以下是此类网站的一个小列表:
我已经使用了以下DNS查找,该查找还查找了由同一IP服务的其他域: