Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: ANreZZ en 13 Noviembre 2015, 13:35 PM

Título: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 13 Noviembre 2015, 13:35 PM
Hola chicos! he comenzado con una raspberry y python. Tengo intención de hacer un pequeño programa en python, donde realizar ping periodicamente a determinadas IP (2 o 3 definidas por mi que estarán en una red local) y una tercera por ejemplo a google para determinar si tengo conexion a internet.

Y en base de si tengo conexión/comunicación, realizar diferentes acciones.

Por ahora para empezar a entender el código, me gustaría que si hay conexión usar la función print para que me diga que conexión ok, y si no tengo, por ejemplo que pueda enviar un correo electrónico.

He buscado diferentes códigos de ejemplo por la red, pero todos me dan diferentes tipos de error. Podeis ayudarme?

gracias!!
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: v4char en 13 Noviembre 2015, 14:58 PM
Puedes mirarte como usar scapy que te creas tu propios paquetes o si quieres algo mas simple prueba esto

Esto es el peor programa que alguien puede hacer, aviso pero funciona.

Código (python) [Seleccionar]
import os
hostname = "127.0.0.1"
while(1):
  response = os.system("ping -c 1 " + hostname)

Título: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 13 Noviembre 2015, 15:04 PM
Muchas gracias v4char.
Voy a probarlo, pero dos cosas:
- por que dices que es el peor programa?
- con la función que me indicas, como programo hacer el Ping por ejemplo cada 5 minutos, y hago una cosa u otra según el resultado?

Muchas gracias!!
Enviado desde mi iPhone
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: Masita en 13 Noviembre 2015, 15:50 PM
Para realizar acciones cada x minutos podrias usar el metodo sleep() del paquete time.

Código (python) [Seleccionar]

import time
import os

hostname = "www.google.com"
while(1):
    response = os.system("ping -c 1 " + hostname)
    if response == 0:
        print "Hay conexion"
    else:
        print "No hay conexion"

    time.sleep(300)




Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: v4char en 13 Noviembre 2015, 16:03 PM
Cita de: ANreZZ en 13 Noviembre 2015, 15:04 PM
Muchas gracias v4char.
Voy a probarlo, pero dos cosas:
- por que dices que es el peor programa?
- con la función que me indicas, como programo hacer el Ping por ejemplo cada 5 minutos, y hago una cosa u otra según el resultado?

Muchas gracias!!
Enviado desde mi iPhone

Pues es el peor programa porque estas llamando al comando ping del sistema operativo
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 13 Noviembre 2015, 22:23 PM
Muchas gracias voy a probarlo!


Enviado desde mi iPhone
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 14 Noviembre 2015, 16:49 PM
Hola!

acabo de probar el programa, y en todo momento me da en print, q no hay conexion..

Desde luego el ordeandor donde se esta ejecutando tiene conexion a internet, ademas he probado a cambiarlo por una ip local y tambien me dice no hay conexion.

Por si ayuda, estoy utilizando python en windows (aunque luego lo meteré en la raspberry..)

gracias!
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: тαптяα en 14 Noviembre 2015, 17:15 PM
quitale el "-c" después del ping y pruebalo
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 14 Noviembre 2015, 17:33 PM
lo he probado directamente en la raspberry y funciona. ahora lo que he querido intentar es hacer dos ping a la vez, y no lo he conseguido, me da error en el codigo:


import time
import os

hostname = "192.168.0.2"
hostname1 = "www.google.com"

while(1):

    response = os.system("ping -c 1 " + hostname)
    if response == 0:
        print ("El Panel comunica correctamente")
    else:
        print ("El panel no comunica")
while(1)......-:
response1 = os.system("ping -c 1 " + hostname1)
     if response1 == 0:
        print ("Hay conexion a internet")
    else:
        print ("No hay conexiona internet")
    time.sleep(10)


me imagino que no tengo bien la funcion while... no la acabo de entender creo..
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: тαптяα en 14 Noviembre 2015, 18:10 PM
Errores en identación.

Revisa como funcionan los bucles en Python.

En Raspberry (Linux) te funciona, si quieres que funcione en windows pon esto:


    response = os.system("ping " + hostname)
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: ANreZZ en 14 Noviembre 2015, 21:25 PM
Mira que error me da en al raspberry:

(http://images.tapatalk-cdn.com/15/11/14/4bfc026652c89d397f330a2cec76412d.jpg)

Gracias x la ayuda!!


Enviado desde mi iPhone
Título: Re: Nuevo en python, necesidad de hacer ping.
Publicado por: Masita en 14 Noviembre 2015, 23:30 PM
Como te han dicho el error se debe a que no has indentado. Fijate en los codigos que te dejamos y la parte que tu has añadido. Mi consejo es que leas algun libro sobre python o te pases por esta web. www.codecademy.com/es y aprendas lo basico sobre python.