在bash中获取随机站点名称

时间:2012-08-04 02:44:53

标签: linux bash dns

我正在编写一个脚本来计算网络中单词的分布。我要做的就是尽可能多地检查随机网站并计算这些网站中的单词数量,列出它们并对它们进行排序,以便大多数时间出现的单词位于列表的顶部。我正在做的是生成随机的ip号码:

a=`expr $RANDOM % 255`
let "a+=1"
b=`expr $RANDOM % 256`
c=`expr $RANDOM % 256`
d=`expr $RANDOM % 256`
ip=$a.$b.$c.$d

之后使用nmap我检查端口80或8080是否在这些网站上打开,以便它可能是一个网站。

如果我确定ip不属于某个网站,我会将该地址添加到黑名单文件中,以便不再检查它。

如果端口80或端口8080已打开,那么我必须使用反向查找来解析ip并获取属于该ip的所有域名。

问题是如果我执行其中一个命令,输出只是单个PTR记录,而可能有多个:

dig -x ipaddres +short
nslookup ipaddress
host ipaddress

我更喜欢用bash解决这个问题,但是如果在C中有解决方案,它也会有所帮助

之后,我使用w3m将网站页面复制到一个文件,并计算单词出现次数。

此外我还有另一个问题,是否有办法检查属于该网站的可用公共页面而不仅仅是索引?

感谢任何帮助

1 个答案:

答案 0 :(得分:3)

由于虚拟主机等原因,许多网站完全无法通过IP地址访问。我不确定你是否会通过这样做在网络上统一分发单词。此外,通过随机生成32位数字,托管网站的IP地址并非真正均匀分布。拥有大多数真实网站的托管公司将集中在小范围内,而许多其他IP将成为ISP的终端,可能没有托管。

鉴于上述情况,以及您尝试解决的问题,我实际上建议您获取网址分发以抓取并计算这些字词的频率。这样做的好工具就像WWW:用Python,Perl,Ruby等机械化。因为你的限制因素是你的互联网连接而不是你的处理速度,所以在低级别这样做是没有优势的。语言。这样,您将有更高的机会在同一IP上访问多个站点。