如何获取不回答Ping的WebSite IP?

时间:2010-12-29 16:27:30

标签: web ip ping c#

我正在尝试获取一个不响应ping的网站的IP地址 - 它们超时。

我正在尝试从C#应用程序而不是Windows中的命令输入屏幕执行此操作。我一直在使用ping命令,它在某些网站上超时,所以它在那里没用。

是否有其他方法可以获取不需要网站响应的信息?

9 个答案:

答案 0 :(得分:6)

即使站点没有响应PING(ICMP未在服务器上启用或由防火墙过滤),PING命令仍应将站点名称解析为IP地址并显示该IP地址。

检查Windows上ping命令的输出(以粗体显示的ip地址):

ping wikipedia.org

使用32个字节ping wikipedia.org [208.80.152.2] 来自208.80.152.2的回复:bytes = 32 time = 245ms TTL = 50
来自208.80.152.2的回复:bytes = 32 time = 235ms TTL = 50

更新(由于更新的问题)

如果您尝试从C#应用程序获取DNS名称的IP地址,则应使用Dns类中的GetHostEntry方法:http://msdn.microsoft.com/en-us/library/ms143998.aspx

答案 1 :(得分:3)

您从DNS获取IP,并且需要它来执行ping,因此您已经拥有它。

$ ping google.com
PING google.com (74.125.227.51) 56(84) bytes of data.
64 bytes from 74.125.227.51: icmp_seq=0 ttl=56 time=5.80 ms
64 bytes from 74.125.227.51: icmp_seq=1 ttl=56 time=6.23 ms

显示IP。如果您没有获得IP,您的DNS可能会关闭。

您还可以尝试nslookup google.com

答案 2 :(得分:2)

Dns.GetHostEntry()中的主机名获取IP地址。传入主机名,它将返回IP地址。

您无需ping(无论如何联系)某个站点以获取其IP地址。 DNS查找将为您提供所需的信息。

答案 3 :(得分:1)

您可以使用nslookup解析域名。

nslookup google.com

答案 4 :(得分:1)

以下代码可用于为提供的主机名执行DNS查找。

使用DNS将绕过访问目标服务器。它是一个独立的分布式目录服务,它将主机名维护为IP地址查找。

如果可以为提供的主机名解析DNS条目,则以下代码将为主机提供第一个返回的IP地址。

    public void test()
    {
        string hostname = "google.com";
        IPAddress ipAdress;

        if (TryGetIpAddress(hostname, out ipAdress))
        {
            Console.WriteLine("Host:'{0}', IP:{1}.", hostname, ipAdress);
        }
        else
        {
            Console.WriteLine("Host '{0}' not found.", hostname);
        }
    }

    public bool TryGetIpAddress(string hostname, out IPAddress ipAddress)
    {
        const int HostNotFound = 11001;
        ipAddress = null;

        try
        {
            IPHostEntry hostEntry = Dns.GetHostEntry(hostname);

            ipAddress = hostEntry.AddressList[0];
        }
        catch (SocketException ex)
        {
            if (ex.ErrorCode != HostNotFound) throw;
        }

        return (ipAddress != null);
    } 

答案 5 :(得分:0)

您可以使用tracert,它将解析IP地址并告诉您是否可以到达或停止它。

答案 6 :(得分:0)

如果站点(http)启动并运行,那么很明显sys / network admin禁用ping并且很可能也跟踪路由实用程序。它现在变得非常普遍。见here。您可以选择使用ns {查询或WHOIS服务,如here

所述

答案 7 :(得分:0)

在代码中执行此操作时,您应该使用gethostbyname()等函数。

这应该在stackoverflow.com上

答案 8 :(得分:0)

未经测试

您可以托管此网站

http://centralops.net/co/DomainDossier.aspx

你可以使用import.io来建立网站的功能。

https://www.import.io/

此链接可以为您提供见解