#!/usr/bin/perl -w # # wdcln.pl # using NT resource kit # takes winsdmp.exe output & # dumps wins server database # prints active WINS records # to comma separated winsout.txt # # usage: wdcln.pl # system("c:/ntreskit/winsdmp.exe $ARGV[0] > winsdump.txt"); open(WF, "c:/ntreskit/winsdump.txt"); open(OF, ">c:/ntreskit/winsout.txt"); printf OF "%-20s ,%-15s , %4s ,%5s ,Version\n", "Netbios Name", "IP Address", "Type", "State"; # print header while() { if (m/\d\d?\d?.\d\d?\d?.\d\d?\d?\.\d\d?\d?,\"(.*)",[0-9A-F]{1,2},\d+,(\d+),(\d+),\d+,(\d+).*,(\d\d?\d?.\d\d?\d?.\d\d?\d?\.\d\d?\d?),$/) { # # for clarity, make $\d variables pretty # $nbname = $1; $type = $2; $state = $3; $vers = $4; $ip_addr = $5; if ($state < 1) { # # this ensures only active entries in the db # state == 1 is released, state == 2 is tombstone records # printf OF "%-20s ,%-15s ,%4d ,%5d ,%d\n", $nbname, $ip_addr, $type, $state, $vers; } # if state } # if match } # while close(OF); close(WF);