Python - ALTERNATIVA A PING

 
Vista:
sin imagen de perfil
Val: 54
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

ALTERNATIVA A PING

Publicado por CARLOS (19 intervenciones) el 14/11/2017 22:04:47
Buenas noches foreros:

Actualmente tengo varios dispositivos basados en Raspberry Pi conectados a través de una Intranet a un servidor y desde este, escaneo la red cada cierto tiempo con crontab,

Para ello, utilizo el siguiente script que busca y hace PING a las ip's incluidas en un fichero de texto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
# ipScanFlist.py
 
import subprocess
import os
import logging
import datetime
 
'''
ip_file.lst contains ip address in following format
192.168.1.1
192.168.1.2
'''
 
#Enable debug logging into log
DEBUG=True
 
if(DEBUG):
    logging.basicConfig(format='%(asctime)s %(message)s',filename='/var/www/html/ipScanFlist.log', level=logging.DEBUG)
 
def debug(message):
    logging.debug(message)
 
with open('ip_file.lst','r') as file:
    for ip in file:
        result=subprocess.Popen(["ping", "-c", "1", "-n", "-W", "2", ip],
		stdout=file, stderr=file).wait()
        if result:
                	print ip, "inactive"
			debug(ip)
        else:
                	print ip, "active"
file.close()

El caso es que, por seguridad, me han prohibido utilizar el PING en la red y necesito encontrar una alternativa con un script similar que me discrimine las conexiones vivas del resto para poder actuar en consecuencia.
Lo he intentado con nmap, sustituyendo

1
result=subprocess.Popen(["ping", "-c", "1", "-n", "-W", "2", ip], stdout=file, stderr=file).wait()

por lo siguiente

1
result=subprocess.Popen(["nmap", "-PN", "-p 22", ip], stdout=file, stderr=file).wait()

pero no acabo de hacerlo funcionar.

Alguna sugerencia....?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder