如何找到解析为给定网络范围内的 IP 的任何域名?

如何找到解析为给定网络范围内的 IP 的任何域名?

例如,给定范围:

172.128.0.0 - 172.191.255.255

我需要找到一些可解析为该范围内 IP 地址的域名。可以吗?我使用的是 Linux 系统。

答案1

您可以对范围内的每个 IP 进行反向查找,并在结果中搜索您要查找的域。但是,这仅在负责该域的人员为该 IP 创建了 PTR 记录时才有效。

这是一个快速而粗糙的工作示例:

#!/usr/bin/env python
"""
ipAddrRange function ripped from:
http://vinojdavis.blogspot.com/2009/02/def-ipaddrrangestartaddr-endaddr-def.html
"""

import sys
import socket

def ipAddrRange(startAddr, endAddr):
    def incrAddr(addrList):
        addrList[3] += 1
        for i in (3,2,1):
            if addrList[i] == 256:
                addrList[i] = 0
                addrList[i-1] += 1
    def asString(addrList):
        return ".".join(map(str,addrList))
    startAddrList = map(int,startAddr.split("."))
    endAddrList = map(int,endAddr.split("."))
    curAddrList = startAddrList[:]
    yield asString(curAddrList)
    for i in range(4):
        while curAddrList[i] < endAddrList[i]:
            incrAddr(curAddrList)
            yield asString(curAddrList)

if len(sys.argv) > 1 and sys.argv[1]:
    domain_filter = sys.argv[1]
else:
    domain_filter = ""

for addr in ipAddrRange("172.128.0.0","172.191.255.255"):
    ptr = socket.gethostbyaddr(addr)[0]
    if domain_filter:
        if domain_filter in ptr:
            print ptr
    else:
        print ptr

示例运行:

# ./reverse_spy.py aol
AC800000.ipt.aol.com
AC800001.ipt.aol.com

您可以将输出限制为与可选参数匹配的结果。

另外,限制您的范围,因为您的示例范围是 4194304 个 IP 长。;) 让人们用这样的范围来寻找您。

答案2

您是否正在寻找任何解析为特定 IP 的 DNS 名称;或者您正在尝试查找全部DNS 名称解析为 IP。后者是不可能的。前者几乎可以在任何操作系统上轻松实现:

nslookup
set type=ptr
(reversed-ip).in-addr.arpa

(reversed-ip) 部分听起来是这样的。如果你的 IP 是 1.2.3.4,那么反向 IP 将是 4.3.2.1,第三行将是:

4.3.2.1.in-addr.arpa

答案3

根据 ARIN,172.128.0.0/10 归 AOL 所有。您可以尝试查询 AOL 列出的 DNS 服务器,看看它们是否有您感兴趣的 IP 的反向条目。(转到 arin.net 并在其 whois 中搜索该网络地址。)

答案4

nmap -sL -R 172.128-191.0-255.0-255

-sL列出不经扫描的主机。-R强制 DNS 解析。

相关内容