Hay que tener en cuenta que en la linea numero 5 en perl, hay que mirar si la salida del comando ifconfig tiene las cadenas "Direc. inet:", si son otras habría que modificar la linea para sacar nuestra ip. Y también configurar las mac de nuestros dispositivos o bien anular esas lineas si se sabe algo de perl :). Hay que mirar que configuración tenemos de red, en mi caso 192.168.0.0 y sustituir 192.168.0.1 por la nuestra. Y para afinar mas, poner el path completo del archivo hosts-ip.txt
Para el de python (que es mas simple) mirar "Direc. inet" y nada más.
#!/usr/bin/perl
$archivos="hosts-ip.txt";
$scaneo= `nmap -sP 192.168.0.1/24 > $archivos`;
$ip= `/sbin/ifconfig wlan0 |grep 'Direc. inet:'|awk '{print \$2}'|cut -c 6-`;
chomp($ip);
open INFILE,$archivos;
my $linea;
my $conmutador=0;
while ( $linea = ) {
chomp($linea);
$linea =~ m/^Nmap scan report for\s(.+?)$/;
if($1 =~ m=(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})=){
$comp = "$1.$2.$3.$4";
if($comp ne "192.168.0.1"){
if($comp eq $ip){$texto.="Mi D IP = $ip\n"}
else{
$mac=`arp $comp`;
$mac =~ m/(..:..:..:..:..:..)/;
if($1 eq "xx:xx:xx:xx:xx:xx"){$valor="Mi Móvil"}
elsif($1 eq "xx:xx:xx:xx:xx:xx"){$valor="Mi Tablet"}
else{$valor=$1;}
$texto.="Intruso = $comp $valor\n";
$conmutador = 1;
}
}
}
}
close INFILE;
print $texto
$salido =`notify-send -t 0 -i wicd-gtk "Escaneo de la Red" "$texto"`;
Y el de python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import commands
import re
import subprocess
ip = commands.getoutput("/sbin/ifconfig wlan0 |grep 'Direc. inet:'|awk '{print $2}'|cut -c 6-")
scaneo=commands.getoutput("nmap -sP 192.168.0.1/24 > hosts-ippy.txt")
infile = open('hosts-ippy.txt', 'r')
texto = ''
for linea in infile:
linea.rstrip()
m = re.match(r"(.+)\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", linea)
if m:
if m.group(2) != '192.168.0.1':
if ip == m.group(2):
texto+='Mi D IP = '+ip+'\n'
else:
texto+='Intruso = '+m.group(2)+'\n'
infile.close()
print texto
exitCode = subprocess.call(["notify-send",'-t','0','Escaneo de la Red',texto])
No hay comentarios:
Publicar un comentario