例如,给定范围:
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 解析。