![]() |
|
|||||||
| Register | Search | Today's Posts | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#31 (permalink) |
|
Nyuk nyuk!
Join Date: Jan 2005
Location: TX
Posts: 1,380
|
Glad to hear it worked for you.
I'll be releasing a newer version in near future, maybe by months end if I can work the bugs out of the Bezier curves. I'll be changing the name as well to reflect its ability to handle NS1 files. I've been hesitant to get to carried away with to much stuff because GE seems to get highly unstable with upwards of 80k+ coordinates. The next release will have crop circles (coverage area) and a few other enhancements. |
|
|
|
|
|
#33 (permalink) | |
|
Humourless EuroMod.
Join Date: Mar 2004
Location: City of Mermaids, Denmark
Posts: 6,813
|
Quote:
![]() Dutch
__________________
All your answers are belong to Google. SEARCH DAMMIT! Warning. Warning. Low C8H10N4O2 level detected. Operator halted.... |
|
|
|
|
|
|
#34 (permalink) | |
|
Nyuk nyuk!
Join Date: Jan 2005
Location: TX
Posts: 1,380
|
Quote:
![]() |
|
|
|
|
|
|
#35 (permalink) |
|
Nyuk nyuk!
Join Date: Jan 2005
Location: TX
Posts: 1,380
|
Got the network boundaries working. This screen shot is of a NS1 file that had approx 800 nets and 25k gps data. Couple that with the curve plots and the kml had about 115k coordinates. It took about 11 total sec to parse the NS1 file and create the KML
Hopefully I'll have it ready to release this weekend. Interesting to see all the overlapping networks and understand why wireless is crap. ![]() Last edited by Scruge : 02-11-2007 at 08:16 PM. |
|
|
|
|
|
#36 (permalink) |
|
Registered Member
Join Date: Sep 2004
Posts: 4
|
KLC http://boet.cc/
Code:
#!/usr/bin/perl
# copyright 2005 tud.thaunderdog
# minor bugfix and speedup attempt by Dutch 2006
use XML::LibXML;
unless ( @ARGV > 2 ) {
print "Usage: $0 <input-1st> <input-Nth> <output>\n";
exit;
}
$start_time = localtime(time);
$out_file_name = pop @ARGV;
@log_files = @ARGV;
$net_num = 0;
$firstlog = 0;
foreach $this_log (@log_files) {
$firstlog++;
print "KLV: Reading Logfile $this_log....\n";
$doc = XML::LibXML::Document->new();
$root = $doc->createElement('html');
$doc->setDocumentElement($root);
$body = $doc->createElement('body');
$root->appendChild($body);
if (!$xml_body) {
open(LOG_FILE,"<$this_log");
@log_file = <LOG_FILE>;
close(LOG_FILE);
foreach $line (@log_file) {
if ($line=~/<?xml/) { $xml_head .= $line; }
elsif ($line=~/<!DOCTYPE/) {$xml_head .= $line; }
elsif ($line=~/<detection-run/) { $xml_head .= $line; }
elsif ($line=~/<\/detection-run/) { $xml_foot .= $line; }
}
open(OUT_FILE,">$out_file_name");
print OUT_FILE ("$xml_head");
print OUT_FILE ("$xml_foot");
close(OUT_FILE);
$xml_body = 1;
}
$parser = XML::LibXML->new();
$parser->expand_entities(0);
$tree = $parser->parse_file($this_log);
$root = $tree->getDocumentElement;
@networks = $root->getElementsByTagName('wireless-network');
foreach $this_network (@networks) {
$net_bssid = $this_network->getElementsByTagName('BSSID')->[0]->getFirstChild->getData;
$out_parser = XML::LibXML->new();
$out_parser->expand_entities(0);
$out_tree = $out_parser->parse_file($out_file_name);
$out_root = $out_tree->getDocumentElement;
if ( $temp = $out_root->getElementsByTagName('wireless-network') ) { @out_networks = $out_root->getElementsByTagName('wireless-network'); }
$unique = 1;
if ("$firstlog" > "1") {
if (@out_networks) {
foreach $this_out_network (@out_networks) {
$out_net_bssid = $this_out_network->getElementsByTagName('BSSID')->[0]->getFirstChild->getData;
if ( "$net_bssid" eq "$out_net_bssid" ) {
undef $unique;
$out_net = $this_out_network;
last;
}
} # end foreach $this_out_network
} # end if there are networks in out file
}
if ($unique) {
print "KLV: Merging $net_bssid - $net_num - $firstlog\n";
## Is this faster?...
#$net_num = 0;
#foreach $this_out_network (@out_networks) {
#
# $this_network_xml = $this_out_network->toString;
# if ( $this_network_xml =~ /<wireless-network number="\d+"/ ) {
# $net_num++;
# $this_network_xml=~ s/<wireless-network number="\d+"/<wireless-network number="$net_num"/;
# } else {
# $networks .= "\n$this_network_xml";
# }
#}
#$this_network_xml = $this_network->toString;
#$networks .= "\n$this_network_xml";
#
## ...Or is this?
$net_num++;
$this_network_xml = $this_network->toString;
$this_network_xml=~ s/<wireless-network number="\d+"/ <wireless-network number="$net_num"/;
$networks .= "\n$this_network_xml";
} else {
print "KLV: Merging $net_bssid - Updated\n";
undef $networks;
undef $gps;
$net_packets_LLC = $this_network->getElementsByTagName('LLC')->[0]->getFirstChild->getData;
$out_net_packets_LLC = $out_net->getElementsByTagName('LLC')->[0]->getFirstChild->getData;
$net_packets_LLC += $out_net_packets_LLC;
$net_packets_data = $this_network->getElementsByTagName('data')->[0]->getFirstChild->getData;
$out_net_packets_data = $out_net->getElementsByTagName('data')->[0]->getFirstChild->getData;
$net_packets_data += $out_net_packets_data;
$net_packets_crypt = $this_network->getElementsByTagName('crypt')->[0]->getFirstChild->getData;
$out_net_packets_crypt = $out_net->getElementsByTagName('crypt')->[0]->getFirstChild->getData;
$net_packets_crypt += $out_net_packets_crypt;
$net_packets_weak = $this_network->getElementsByTagName('weak')->[0]->getFirstChild->getData;
$out_net_packets_weak = $out_net->getElementsByTagName('weak')->[0]->getFirstChild->getData;
$net_packets_weak += $out_net_packets_weak;
$net_packets_dupeiv = $this_network->getElementsByTagName('dupeiv')->[0]->getFirstChild->getData;
$out_net_packets_dupeiv = $out_net->getElementsByTagName('dupeiv')->[0]->getFirstChild->getData;
$net_packets_dupeiv += $out_net_packets_dupeiv;
$net_packets_total = $this_network->getElementsByTagName('total')->[0]->getFirstChild->getData;
$out_net_packets_total = $out_net->getElementsByTagName('total')->[0]->getFirstChild->getData;
$net_packets_total += $out_net_packets_total;
$net_packets_datasize = $this_network->getElementsByTagName('datasize')->[0]->getFirstChild->getData;
$out_net_packets_datasize = $out_net->getElementsByTagName('datasize')->[0]->getFirstChild->getData;
$net_packets_datasize += $out_net_packets_datasize;
if ( ( $temp = $this_network->getElementsByTagName('min-lat')->[0] ) && ( $temp = $out_net->getElementsByTagName('min-lat')->[0] ) ) {
$gps = 1;
$net_gps_min_lat = $this_network->getElementsByTagName('min-lat')->[0]->getFirstChild->getData;
$out_net_gps_min_lat = $out_net->getElementsByTagName('min-lat')->[0]->getFirstChild->getData;
if ( $net_gps_min_lat > $out_net_gps_min_lat ) { $net_gps_min_lat = $out_net_gps_min_lat; }
$net_gps_min_lon = $this_network->getElementsByTagName('min-lon')->[0]->getFirstChild->getData;
$out_net_gps_min_lon = $out_net->getElementsByTagName('min-lon')->[0]->getFirstChild->getData;
if ( $net_gps_min_lon > $out_net_gps_min_lon ) { $net_gps_min_lon = $out_net_gps_min_lon; }
$net_gps_min_alt = $this_network->getElementsByTagName('min-alt')->[0]->getFirstChild->getData;
$out_net_gps_min_alt = $out_net->getElementsByTagName('min-alt')->[0]->getFirstChild->getData;
if ( $net_gps_min_alt > $out_net_gps_min_alt ) { $net_gps_min_alt = $out_net_gps_min_alt; }
$net_gps_min_spd = $this_network->getElementsByTagName('min-spd')->[0]->getFirstChild->getData;
$out_net_gps_min_spd = $out_net->getElementsByTagName('min-spd')->[0]->getFirstChild->getData;
if ( $net_gps_min_spd > $out_net_gps_min_spd ) { $net_gps_min_spd = $out_net_gps_min_spd; }
$net_gps_max_lat = $this_network->getElementsByTagName('max-lat')->[0]->getFirstChild->getData;
$out_net_gps_max_lat = $out_net->getElementsByTagName('max-lat')->[0]->getFirstChild->getData;
if ( $net_gps_max_lat < $out_net_gps_max_lat ) { $net_gps_max_lat = $out_net_gps_max_lat; }
$net_gps_max_lon = $this_network->getElementsByTagName('max-lon')->[0]->getFirstChild->getData;
$out_net_gps_max_lon = $out_net->getElementsByTagName('max-lon')->[0]->getFirstChild->getData;
if ( $net_gps_max_lon < $out_net_gps_max_lon ) { $net_gps_max_lon = $out_net_gps_max_lon; }
$net_gps_max_alt = $this_network->getElementsByTagName('max-alt')->[0]->getFirstChild->getData;
$out_net_gps_max_alt = $out_net->getElementsByTagName('max-alt')->[0]->getFirstChild->getData;
if ( $net_gps_max_alt < $out_net_gps_max_alt ) { $net_gps_max_alt = $out_net_gps_max_alt; }
$net_gps_max_spd = $this_network->getElementsByTagName('max-spd')->[0]->getFirstChild->getData;
$out_net_gps_max_spd = $out_net->getElementsByTagName('max-spd')->[0]->getFirstChild->getData;
if ( $net_gps_max_spd < $out_net_gps_max_spd ) { $net_gps_max_spd = $out_net_gps_max_spd; }
}
foreach $this_out_network (@out_networks) {
$this_network_xml = $this_out_network->toString;
if ($this_out_network eq $out_net) {
$this_network_xml=~ s/<LLC>\d*<\/LLC>/<LLC>$net_packets_LLC<\/LLC>/;
$this_network_xml=~ s/<data>\d*<\/data>/<data>$net_packets_data<\/data>/;
$this_network_xml=~ s/<crypt>\d*<\/crypt>/<crypt>$net_packets_crypt<\/crypt>/;
$this_network_xml=~ s/<weak>\d*<\/weak>/<weak>$net_packets_weak<\/weak>/;
$this_network_xml=~ s/<dupeiv>\d*<\/dupeiv>/<dupeiv>$net_packets_dupeiv<\/dupeiv>/;
$this_network_xml=~ s/<total>\d*<\/total>/<total>$net_packets_total<\/total>/;
$this_network_xml=~ s/<datasize>\d*<\/datasize>/<datasize>$net_packets_datasize<\/datasize>/;
if ($gps) {
$this_network_xml=~ s/<min-lat>\d*\.\d*<\/min-lat>/<min-lat>$net_gps_min_lat<\/min-lat>/;
$this_network_xml=~ s/<min-lon>\d*\.\d*<\/min-lon>/<min-lon>$net_gps_min_lon<\/min-lon>/;
$this_network_xml=~ s/<min-alt>\d*\.\d*<\/min-alt>/<min-alt>$net_gps_min_alt<\/min-alt>/;
$this_network_xml=~ s/<min-spd>\d*\.\d*<\/min-spd>/<min-spd>$net_gps_min_spd<\/min-spd>/;
$this_network_xml=~ s/<max-lat>\d*\.\d*<\/max-lat>/<max-lat>$net_gps_max_lat<\/max-lat>/;
$this_network_xml=~ s/<max-lon>\d*\.\d*<\/max-lon>/<max-lon>$net_gps_max_lon<\/max-lon>/;
$this_network_xml=~ s/<max-alt>\d*\.\d*<\/max-alt>/<max-alt>$net_gps_max_alt<\/max-alt>/;
$this_network_xml=~ s/<max-spd>\d*\.\d*<\/max-spd>/<max-spd>$net_gps_max_spd<\/max-spd>/;
}
$client_num = @net_clients = $this_network->getElementsByTagName('wireless-client');
undef $client_num;
if (@net_clients) {
while ($this_network_xml=~ /.*client.*\n/) { $this_network_xml=~ s/.*client.*\n//; }
$this_network_xml=~ s/.*<\/wireless-network>.*//;
foreach $this_client (@net_clients) {
$unique = 1;
$client_mac = $this_client->getElementsByTagName('client-mac')->[0]->getFirstChild->getData;
$out_net_clients_total = @out_net_clients = $out_net->getElementsByTagName('wireless-client');
foreach $out_this_client (@out_net_clients) {
$out_client_mac = $out_this_client->getElementsByTagName('client-mac')->[0]->getFirstChild->getData;
if ( "$client_mac" eq "$out_client_mac" ) {
undef $unique;
$out_client = $this_out_client;
last;
}
}
if ($unique) {
print " Client $client_mac\n";
$this_client_xml = $this_client->toString;
$client_num++;
$this_client_xml=~ s/<wireless-client number="\d+"/<wireless-client number="$client_num"/;
} else {
print " Client $client_mac - Updated\n";
undef $gps;
$client_packets_data = $this_client->getElementsByTagName('client-data')->[0]->getFirstChild->getData;
$out_net_packets_data = $out_net->getElementsByTagName('client-data')->[0]->getFirstChild->getData;
$client_packets_data += $out_net_packets_data;
$client_packets_crypt = $this_client->getElementsByTagName('client-crypt')->[0]->getFirstChild->getData;
$out_net_packets_crypt = $out_net->getElementsByTagName('client-crypt')->[0]->getFirstChild->getData;
$client_packets_crypt += $out_net_packets_crypt;
$client_packets_weak = $this_client->getElementsByTagName('client-weak')->[0]->getFirstChild->getData;
$out_net_packets_weak = $out_net->getElementsByTagName('client-weak')->[0]->getFirstChild->getData;
$client_packets_weak += $out_net_packets_weak;
$client_packets_datasize = $this_client->getElementsByTagName('client-datasize')->[0]->getFirstChild->getData;
$out_client_packets_datasize = $out_net->getElementsByTagName('client-datasize')->[0]->getFirstChild->getData;
$client_packets_datasize += $out_cliet_packets_datasize;
if ( ( $temp = $this_client->getElementsByTagName('client-min-lat')->[0] ) && ( $temp = $out_net->getElementsByTagName('client-min-lat')->[0] ) ) {
$gps = 1;
$client_gps_min_lat = $this_client->getElementsByTagName('client-min-lat')->[0]->getFirstChild->getData;
$out_net_gps_min_lat = $out_net->getElementsByTagName('client-min-lat')->[0]->getFirstChild->getData;
if ( $client_gps_min_lat > $out_net_gps_min_lat ) { $client_gps_min_lat = $out_net_gps_min_lat; }
$client_gps_min_lon = $this_client->getElementsByTagName('client-min-lon')->[0]->getFirstChild->getData;
$out_net_gps_min_lon = $out_net->getElementsByTagName('client-min-lon')->[0]->getFirstChild->getData;
if ( $client_gps_min_lon > $out_net_gps_min_lon ) { $client_gps_min_lon = $out_net_gps_min_lon; }
$client_gps_min_alt = $this_client->getElementsByTagName('client-min-alt')->[0]->getFirstChild->getData;
$out_net_gps_min_alt = $out_net->getElementsByTagName('client-min-alt')->[0]->getFirstChild->getData;
if ( $client_gps_min_alt > $out_net_gps_min_alt ) { $client_gps_min_alt = $out_net_gps_min_alt; }
$client_gps_min_spd = $this_client->getElementsByTagName('client-min-spd')->[0]->getFirstChild->getData;
$out_net_gps_min_spd = $out_net->getElementsByTagName('client-min-spd')->[0]->getFirstChild->getData;
if ( $client_gps_min_spd > $out_net_gps_min_spd ) { $client_gps_min_spd = $out_net_gps_min_spd; }
$client_gps_max_lat = $this_client->getElementsByTagName('client-max-lat')->[0]->getFirstChild->getData;
$out_net_gps_max_lat = $out_net->getElementsByTagName('client-max-lat')->[0]->getFirstChild->getData;
if ( $client_gps_max_lat < $out_net_gps_max_lat ) { $client_gps_max_lat = $out_net_gps_max_lat; }
$client_gps_max_lon = $this_client->getElementsByTagName('client-max-lon')->[0]->getFirstChild->getData;
$out_net_gps_max_lon = $out_net->getElementsByTagName('client-max-lon')->[0]->getFirstChild->getData;
if ( $client_gps_max_lon < $out_net_gps_max_lon ) { $client_gps_max_lon = $out_net_gps_max_lon; }
$client_gps_max_alt = $this_client->getElementsByTagName('client-max-alt')->[0]->getFirstChild->getData;
$out_net_gps_max_alt = $out_net->getElementsByTagName('client-max-alt')->[0]->getFirstChild->getData;
if ( $client_gps_max_alt < $out_net_gps_max_alt ) { $client_gps_max_alt = $out_net_gps_max_alt; }
$client_gps_max_spd = $this_client->getElementsByTagName('client-max-spd')->[0]->getFirstChild->getData;
$out_net_gps_max_spd = $out_net->getElementsByTagName('client-max-spd')->[0]->getFirstChild->getData;
if ( $client_gps_max_spd < $out_net_gps_max_spd ) { $client_gps_max_spd = $out_net_gps_max_spd; }
} # enf client if gps
$this_client_xml = $this_client->toString;
$this_client_xml=~ s/<client-data>\d*<\/client-data>/<client-data>$client_packets_data<\/client-data>/;
$this_client_xml=~ s/<client-crypt>\d*<\/client-crypt>/<client-crypt>$client_packets_crypt<\/client-crypt>/;
$this_client_xml=~ s/<client-weak>\d*<\/client-weak>/<client-weak>$client_packets_weak<\/client-weak>/;
$this_client_xml=~ s/<client-datasize>\d*<\/client-datasize>/<client-datasize>$client_packets_datasize<\/client-datasize>/;
if ($gps) {
$this_client_xml=~ s/<client-min-lat>\d*\.\d*<\/client-min-lat>/<client-min-lat>$client_gps_min_lat<\/client-min-lat>/;
$this_client_xml=~ s/<client-min-lon>\d*\.\d*<\/client-min-lon>/<client-min-lon>$client_gps_min_lon<\/client-min-lon>/;
$this_client_xml=~ s/<client-min-alt>\d*\.\d*<\/client-min-alt>/<client-min-alt>$client_gps_min_alt<\/client-min-alt>/;
$this_client_xml=~ s/<client-min-spd>\d*\.\d*<\/client-min-spd>/<client-min-spd>$client_gps_min_spd<\/client-min-spd>/;
$this_client_xml=~ s/<client-max-lat>\d*\.\d*<\/client-max-lat>/<client-max-lat>$client_gps_max_lat<\/client-max-lat>/;
$this_client_xml=~ s/<client-max-lon>\d*\.\d*<\/client-max-lon>/<client-max-lon>$client_gps_max_lon<\/client-max-lon>/;
$this_client_xml=~ s/<client-max-alt>\d*\.\d*<\/client-max-alt>/<client-max-alt>$client_gps_max_alt<\/client-max-alt>/;
$this_client_xml=~ s/<client-max-spd>\d*\.\d*<\/client-max-spd>/<client-max-spd>$client_gps_max_spd<\/client-max-spd>/;
} # end gps
$client_num++;
$this_client_xml=~ s/<wireless-client number="\d+"/<wireless-client number="$client_num"/;
} # end if client unique
$this_network_xml .= "$this_client_xml\n";
} # end foreach client this net
$this_network_xml.= "</wireless-network>\n";
} # end if net has clients
$networks .= "\n$this_network_xml";
} else {
$networks .= "\n$this_network_xml";
} # end if found unique net
} # end foreach out network
} # end if net unique
open(OUT_FILE,">$out_file_name");
print OUT_FILE ("$xml_head");
print OUT_FILE ("$networks\n");
print OUT_FILE ("$xml_foot\n");
close(OUT_FILE);
} # end foreach $this_network
} # end foreach $this_log
$end_time = localtime(time);
print "KLV: Combined Logs to $out_file_name\n";
print "KLV: Operation Started: $start_time\n";
print "KLV: Operation Ended: $end_time\n";
print "KLV: Done\n";
# EOF
Please referance http://boet.cc/ nothing there yet, but I'll get it posted back there. Please be sure you referance the new contact when distributing this. Thanks! |
|
|
|
|
|
#37 (permalink) |
|
Asshole Emeritus
Join Date: May 2003
Location: S.E. VA.
Posts: 5,939
|
...reference, maybe?
__________________
"Benjamin is nobody's friend. If Benjamin were an ice cream flavor, he'd be pralines and dick." Sons of Confederate Veterans |
|
|
|