#!@PERL@ # Recreates a .db file compatible with that produced by dns-terror # from the ASCII output of convert-ip-db. # Mostly useful for disaster recovery. # Written by David MacKenzie # Please send comments and bug reports to ############################################################################## # Copyright 1999 UUNET, an MCI WorldCom company. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. ############################################################################## use BerkeleyDB; use Fcntl; main(); exit(0); sub main { my($dbfile, $ipaddr, $host, %output, $timecode, $timestamp); $dbfile = shift @ARGV || die "Usage: $0 ip2host.db < dns.cache\n"; tie(%output, "BerkeleyDB::Btree", -Filename => $dbfile, -Flags => DB_CREATE|DB_TRUNCATE, -Mode => 0640) || die "$0: Can't create $dbfile: $!\n"; while (<>) { chomp; ($timecode, $ipaddr, $host) = split(/ /, $_, 3); $host = "" if $host eq "*"; $timestamp = ($timecode - (24 * 60)) * 60; $output{$ipaddr} = pack("IA*", $timestamp, $host); } untie(%output); }