0

这是我关于 StackOverflow 的第一个问题。所以,如果有任何错误,请忽略它们。如果您在理解我的问题时遇到问题,请告诉我,我会尽力解释我的问题:)。

目前我正在尝试在 c# 中使用 pcap.net创建一个数据包嗅探器。我在将 IP 地址解析为主机名时遇到了问题。

这是我的问题: 当网站有超过 1 个 ip 地址时,例如当我在命令提示符下键入命令时

nslookup yahoo.com

我得到以下输出

DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 192.168.0.1: Timed out
Server: google-public-dns-a.google.com
Address: 8.8.8.8

Non-authorative answer:
Name: yahoo.com
Addresses: 206.190.36.45, 98.139.183.24, 98.138.253.109

所以,很明显我有超过 1 个 yahoo.com 的 IP 地址。

现在,我正在使用以下代码,它适用于具有 1 个 ip 地址的主机(例如,当我将 ip 源/目标设为 8.8.8.8 时,它会给我结果 google-public-dns- a.google.com

private void PacketHandler(Packet packet)
{
        IpV4Datagram ip = packet.Ethernet.IpV4; 

        string sourceHost = ip.Source.ToString();
        string destinationHost = ip.Destination.ToString();

        #region Code to get the host name of the source ip and the destination ip

        string tempSourceIP = sourceHost;
        string tempDestinationIP = destinationHost;
        IPHostEntry source_ipHostEntry, destination_ipHostEntry;
        try
        {
            source_ipHostEntry = Dns.GetHostEntry(sourceHost);
            destination_ipHostEntry = Dns.GetHostEntry(destinationHost);
            sourceHost = tempSourceIP + "   ::   (" + source_ipHostEntry.HostName + ")";
            destinationHost = tempDestinationIP + "   ::   (" + destination_ipHostEntry.HostName + ")";

        }
        catch (Exception)
        {
            sourceHost = tempSourceIP;
            destinationHost = tempDestinationIP;
        }
        #endregion
}

我将结果 sourceHost 和 destinationHost 添加到 GUI(准确地说是数据网格)以显示结果。

我的问题是 - 有没有办法找出源 IP 或目标 IP 是否属于未知主机的 IP 列表(例如,如果我的源 IP 或目标 IP 是 206.190.36.45,我该如何找到出IP属于yahoo.com)?

更新:我在网上冲浪以找到我的问题的解决方案,我找到了这个链接如何从 IP 地址检索网站列表?. 这部分解决了我的问题,因为即使按照此方法,仍有一些 IP 地址无法解析为其主机名。而且由于我正在制作数据包嗅探器,因此这种方法可能不是最好的方法。因为我想在 GUI 中加载值时实时向用户显示 IP 地址的主机名(我的意思是我的数据网格)。我很高兴知道 - 如果链接中提供的解决方案是解决我的问题的唯一方法。

4

1 回答 1

1

你可以试试 rDNS。

https://en.wikipedia.org/wiki/Reverse_DNS_lookup

但正如那里提到的:

并非所有 IP 地址都有反向条目。

于 2016-04-23T08:02:01.083 回答