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:
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
por lo siguiente
pero no acabo de hacerlo funcionar.
Alguna sugerencia....?
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


0