Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- # Read from: nmap -n -iL ips -p80 -sT -Pn --script getdvrcfg
- # --min-rate=5000 -m 256 -v --min-hostgroup=1000 --script getdvrcfg -oA getDVR
- use Nmap::Parser;
- use Data::Dumper;
- use JSON::XS;
- use Geo::IP;
- use strict;
- my $gi = Geo::IP->open("./GeoLiteCity.dat", GEOIP_STANDARD);
- my $xmlfile = $ARGV[0];
- my $all;
- print "# Reading from NMAP XML File '$xmlfile'.\n";
- my $i=0;
- my $np = new Nmap::Parser;
- $np->parsefile("$xmlfile"); # $name
- my $session = $np->get_session();
- my $nmapv = $session->nmap_version();
- my $xmlv = $session->xml_version();
- for my $host ($np->all_hosts()) {
- my $os_sig = $host->os_sig();
- my $ipv4 = $host->ipv4_addr();
- my $hostn = $host->hostname();
- for my $tcp ($host->tcp_ports()){
- my $service = $host->tcp_service($tcp);
- my $exinf = $service->extrainfo();
- if ($service->scripts('getdvrcfg')) {
- my $htmlindex = $service->scripts('getdvrcfg')->{output};
- if ($htmlindex =~ /_NAME=/) {
- $i++;
- my $record = $gi->record_by_addr($ipv4);
- push @$all, {
- ip => $ipv4,
- lat => $record->latitude,
- lon => $record->longitude,
- city => $record->city || $record->country_name
- };
- }
- }
- }
- }
- open J, ">cams.json" or die "No puedo abrir cams.json\n";
- print J "var cams=";
- print J encode_json( $all );
- close J;
- print "Records: $i\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement