неплохая мысль, но только это RIPN вообще-то называется :)
http://www.ripn.net
потом, зачем для этого нужна база данных? Это вроде-бы рекурсивный поход по поддиректориям
и это реализовано через nameserver
Как видится такая прога
верхний домен 0 ... 255, за ним подуровень 0 .. 255, еще 0 .. 255 и последнее 0 .. 255
Пинговать все по очереди.
т.е. 255*255*255*255 адресов надо пропинговать(дорого трафик будет стоить :)
Вообще есть в UNIX команда nslokup она вроде умеет такие вещи делать целиком и полностью, т.е.
у тебя на первом твоем nameserver есть базка адресов, если в ней нет сервера, который тебе
нужен, пакет отправляется на следующий nameserver до тех пор, пока не найдет адресата.
Иногда в ввел от балды адрес в броузере, оно молчит. Ну дык пока оно молчит оно опрашивает nameserver'а,
если найдет(я года 4 назад так от балды вводил всякие известные названия типа www.ford.com :)
Посмотри в сети DNS HOWTO, это уже сделано все, но не на одном компьютере с одной базой, а
является системой nameserver'ов
Вроде ты получишь разблюдовку по занятым и свободным айпишникам. Ну а коль скоро в наше
время модно увязывать любую деятельность с отдачей(женицца же как-то надо), то на этом даже
заработать нельзя, точнее можно, но место уже занято РОСНИИРОС :)
Можна и прогу забабахать... чесна гнря я ща полазил по манам, смотря что нужно. Можно составить статистику
по системам:
[root@www devel]# perl -MLWP::Simple -e 'print head "http://www.mmonline.ru", "\n"'
text/html; charset=windows-125110073255661Apache/1.3.20 (ALT Linux/alt2) PHP/4.0.6 mod_ssl/2.8.4 OpenSSL/0.9.6a rus/PL30.5
[root@www devel]# perl -MLWP::Simple -e 'print head "http://www.msu.ru", "\n"'
text/html; charset=koi8-r1009140162Apache/1.3.4
[root@www devel]# perl -MLWP::Simple -e 'print head "http://www.sai.msu.ru", "\n"'
#а у этого не известно что стоит, не выдает ихний апач хедеры
[root@www devel]# perl -MLWP::Simple -e 'print head "http://www.leader.ru", "\n"'
text/html; charset=windows-1251Apache
или вот ишшо
#!/usr/bin/perl
use Net::hostent;
use Socket;
@ARGV = ('www.rbc.ru') unless @ARGV;
for $host ( @ARGV ) {
unless ($h = gethost($host)) {
warn "$0: no such host: $host\n";
next;
}
printf "\n%s is %s%s\n",
$host,
lc($h->name) eq lc($host) ? "" : "*really* ",
$h->name;
print "\taliases are ", join(", ", @{$h->aliases}), "\n"
if @{$h->aliases};
if ( @{$h->addr_list} > 1 ) {
my $i;
for $addr ( @{$h->addr_list} ) {
printf "\taddr #%d is [%s]\n", $i++, inet_ntoa($addr);
}
} else {
printf "\taddress is [%s]\n", inet_ntoa($h->addr);
}
if ($h = gethostbyaddr($h->addr)) {
if (lc($h->name) ne lc($host)) {
printf "\tThat addr reverses to host %s!\n", $h->name;
$host = $h->name;
redo;
}
}
}
на выходе
[root@www devel]# ./www.pl www.mmonline.ru genphys.phys.msu.su www.msu.ru www.ras.ru www.netscape.com www.mail.ru
www.mmonline.ru is *really* hq.mmonline.ru
aliases are www.mmonline.ru
address is [193.232.127.116]
genphys.phys.msu.su is genphys.phys.msu.su
address is [193.232.125.10]
www.msu.ru is www.msu.ru
address is [193.232.113.129]
That addr reverses to host virtual.msu.ru!
./ww.pl: no such host: virtual.msu.ru
www.ras.ru is *really* knight.mi.ras.ru
aliases are www.ras.ru
address is [195.208.49.252]
That addr reverses to host knight.mi.ras.ru!
knight.mi.ras.ru is knight.mi.ras.ru
address is [195.208.49.252]
www.netscape.com is *really* home-gslb.netscape.com
aliases are www.netscape.com
address is [195.93.80.120]
That addr reverses to host home.netscape.com!
home.netscape.com is *really* home-gslb.netscape.com
aliases are home.netscape.com
address is [195.93.80.120]
www.mail.ru is www.mail.ru
address is [194.67.57.105]
[root@www devel]#
но это я все к тому, что все это уже реализовано. я эти проги из манов взял просто, сложнее было найти эти маны :)
просто ради интереса можно взглянуть, а так нового ничего.
Интересно, порежет исходники скрипт или нет?