elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:13  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Juego ejercicios [Python]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 Ir Abajo Respuesta Imprimir
Autor Tema: Juego ejercicios [Python]  (Leído 30,526 veces)
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #90 en: 7 Enero 2010, 17:10 »

Nueva consulta ... el rango de IP que formato lleva?
Cualquiera de estos?

Citar
127.0.0.1/127.0.0.255
127.0.0.1/127.120.250.255
127.0.0.1/64
127.0.0.1/255.255
127.0.0.1/127.0.1.255

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Masita

Desconectado Desconectado

Mensajes: 114


pythoneando


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #91 en: 7 Enero 2010, 17:14 »

En mi caso ingreso primero una de las ip en este formato 127.0.0.1  y despues pido la siguiente con el mismo formato. Por ejemplo 128.0.0.1 ( lo unico es que con este rango tardaria eones en terminar el scaneo ) Tu utiliza el formato que desees.


En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #92 en: 7 Enero 2010, 23:41 »

El ejercicio anterior :P

Código
import http.client
 
def NextIP(rango):
           rango = rango.split('.')
           for i in range(len(rango)-1,-1,-1):
                       if(int(rango[i]) < 255):
                                  rango[i] = str(int(rango[i]) + 1)
                                  break
                       else:
                                  rango[i] = '0'
           return '.'.join(rango)
 
def ServerinIPRange(strRange):
           RIPs = strRange.split('/')
           sIPstr = RIPs[0]
           eIP = RIPs[1].split('.')
           eIP = sIPstr.split('.')[:-len(eIP)] + eIP
           eIPstr = '.'.join(eIP)
           ShoWebServer(sIPstr)
           while(sIPstr != eIPstr):
                       sIPstr  = NextIP(sIPstr)
                       ShoWebServer(sIPstr)
 
def ShoWebServer(URLIP):
           try:
                       conn = http.client.HTTPConnection(URLIP,timeout=5)
                       conn.request("GET", "/index.html")
                       r = conn.getresponse()
                       print(URLIP,r.getheader('Server'))
           except:
                       print(URLIP,'Server not found')
           finally:
                       conn.close()
 
try:
   iprange = input("Ingrese un rago de IP (ej: 200.3.25.1/26.255): ")
   ServerinIPRange(iprange)
except:
   print("El rango de IP ingresado no es válido")

Para quienes usan Python 2.6 hay que modificar el script, ya que la librería a importar es la httplib

Una muestra de la salida:
Citar
>>>
Ingrese un rago de IP (ej: 200.3.25.1/200.3.25.255): 207.46.192.250/193.1
207.46.192.250 Server not found
207.46.192.251 Server not found
207.46.192.252 Server not found
207.46.192.253 Microsoft-IIS/7.5
207.46.192.254 Microsoft-IIS/7.5
207.46.192.255 Server not found
207.46.193.0 Server not found
207.46.193.1 Server not found
>>>


Tener en cuenta que el script tiene configurado un timeout de 5 segundos (tiempo que demora en "decidir" si un host es inaccesible o no), y que no se verifica que el rango hasta sea mayor que el inicio, por lo que si nos equivocamos queda en un bucle infinito :silbar:

Ultima nota: los headers que muestra el servidor se pueden modificar, así que no es raro ver algunos extraños, como el gws para google

Saludos

[Edito]
Le bajé el timeout de 10 a 5 segundos
« Última modificación: 8 Enero 2010, 00:20 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Masita

Desconectado Desconectado

Mensajes: 114


pythoneando


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #93 en: 8 Enero 2010, 00:02 »

 ;-) Cada vez que veo uno de tus codigos me doy cuenta de todo lo que falta por aprender.... Aqui dejo lo que habia conseguido hacer yo. Es bastante menos legible y muchisimo mas largo xDD

Código
import socket
def rango(): #Recoge el rango de ip
while True:
a = (raw_input("introduzca primera ip:  "))
b = (raw_input("introduzca segunda ip:  "))
c=b
a, b = a.replace("."," "), b.replace("."," ")
try:
int(a.replace(" ",""))
int(b.replace(" ",""))
 
a, b = a.split(), b.split()
return a,b,c
except:
print "El rango ip introducido no es valido"
def listaip(): #Genera una lista con todas las ip en el rango
aux=[]
ip = []
a, b, c = rango()
a1, a2, a3, a4 = int(a[0]), int(a[1]), int(a[2]), int(a[3])
b1, b2, b3, b4 = int(b[0]), int(b[1]), int(b[2]), int(b[3])
while True:
while a1 != 255:
while a2 != 255:
while a3 != 255:
while a4 != 255:
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 +=1
if aux == c:
return ip
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 +=1
if aux == c:
return ip
aux=[]
 
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 = 0
a2 +=1
if aux == c:
return ip
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 = 0
a2 = 0
a1 +=1
if aux == c:
return ip
def soc(host):
try:
s=socket.socket()
s.settimeout(0.1)
s.connect((host,80))
s.send("HEAD / HTTP/1.1\n\n")
f=s.recv(3000)
s.close()
return f
except:
return False
def comparar(cabecera,servidor):
x = cabecera.find(servidor)
if x != -1:
return True
else:
return False
def gen(ips):
coincidencias = []
indice = 0
for i in ips:
try:
y = soc(i)
if comparar(y,x):
print "Servidor encontrado en: ", i
coincidencias.append(i)
indice +=1
else:
print i
except:
print "Ningun servidor web en: ", i
continue
return coincidencias
#Main
print "######################################"
print "  Buscador de cadenas en headers http"
print "######################################\n"
x = raw_input("Introduzca el servidor a buscar:"  )
ips = listaip()
print "Empezando escaneo"
coin = gen(ips)
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
print "Un total de %d servidores detectados: " % (len(coin))
for i in coin:
print "Servidor encontrado en: ", i
 

Y su salida

Código:
[Masita@Hartigan Documentos]$ python ip.py
######################################
  Buscador de cadenas en headers http
######################################

Introduzca el servidor a buscar:Apache/2.2.13
introduzca primera ip:  212.92.50.9
introduzca segunda ip:  212.92.50.18
Empezando escaneo
Servidor encontrado en:  212.92.50.9
212.92.50.10
212.92.50.11
Ningun servidor web en:  212.92.50.12
.....
.....
Un total de 1 servidores detectados:
Servidor encontrado en:  212.92.50.9

Siguiente ejercicio!
En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #94 en: 8 Enero 2010, 00:17 »

Aaaah, había que ingresar además el tipo de servidor :P

Igual esta muy bien, yo también inicie con los muchos while e if, pero luego encontre la manera de optimizarlo.

En principio también me había planteado retornar una lista con las IP dentro del rango, tal y como hace tu función rango(), pero luego lo deje de lado porque si se ingresa un rango demasiado extenso entonces se carga mucho en memoria, aunque hacer eso es lo mejor y más "correcto", porque de ese modo se separa realmente las dos funciones y se pueden reutilizar mejor a la hora de pasarlas a otro code, pero bueno, eso se cambia con solo agregar una lista y cambiar el return ;D

Debo de decir que también había comenzado el script con sockets, pero luego recorde las otras librerías, que de por si tienen funciones para retornar los headers.

En resumen, bien hecho! ;)

Voy a ver que planteo para el siguiente ejercicio ....
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Masita

Desconectado Desconectado

Mensajes: 114


pythoneando


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #95 en: 8 Enero 2010, 01:01 »

Lo del socket lo intente primero busque si se podia hacer con urllib, pero como no me aceptaba ip's decidi hacerle la peticion de forma manual. Buscare info sobre esas librerias por que sabia que existian pero no se me ocurrio usarlas.

Gracias por la valoracion  ;D
En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #96 en: 8 Enero 2010, 02:13 »

Ahora si ;D

Es relativamente sencillo, para que quienes no han podido con estos, intenten con este otro ..

"Crear un script por medio del cual:
  • El usuario ingrese el nombre de una imagen
  • Se busque imagenes en google según lo ingresado por el usuario
  • Se descargue todos los thumbnails que aparecen en la primera página de coincidencias a un directorio por defecto (a criterio del programador)"
Ej de búsqueda:
google.es ---> http://images.google.es/images?hl=es&source=hp&q=elhacker.net&um=1&ie=UTF-8&sa=N&tab=wi&gbv=1&ei=_4VGS_vpJ8yVtgefnqHwAQ (url ejemplo con imagenes). Se deben de almacenar esas imagenes pequeñas.

[Edito]
Por como muestra los resultados google, con que sean 10 imagenes descargadas alcanza :P

Saludos

« Última modificación: 8 Enero 2010, 11:46 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

CaronteGold


Desconectado Desconectado

Mensajes: 337



Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #97 en: 8 Enero 2010, 06:03 »

-


  No sé si funcionará porque no tengo el intérprete para probarlo, y hasta hoy por la noche creo que no podré entrar de nuevo.

   Me basé en algo que ví en una web, así que no estoy 100% seguro.

Código
import httplib
a = "www.google.es"
part1 = "/images?gbv=2&hl=en&sa=1&q="
part2 = "&btnG=Search&aq=f&oq=&start=0"
b = raw_input("Fotos a buscar: ")
c = part1+b+part2
 
conexion = httplib.HTTPConnection(a)
conexion.request ("GET", c)
d = conexion.getresponse()
directorio = file( "C:\Python", "wb" )
directorio.write(d.read())
directorio.close()
 
   
  EDITO:

 No funciona, al final fui a clase y me echaron porque está nevando, ( que suerte  :P ) , así que puedo conectarme, voy a intentar el code..  ;D ;D ;D.


   Saludos.





« Última modificación: 8 Enero 2010, 09:10 por CaronteGold » En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #98 en: 8 Enero 2010, 13:56 »

Me cachis!  >:(

No hay manera de que me tire lo que busco! pensé que quizás google había cambiado la manera en la que muestra resultados (y no eran accesibles), pero acabo de probar con otro lenguaje (vbs) y no tengo problemas en listar las imagenes!, pero en este caso, ponga lo que le ponga (cambiando user-agent y demás) me sigue pateando con un error 403!

Arghhhhh  >:(
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Masita

Desconectado Desconectado

Mensajes: 114


pythoneando


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #99 en: 8 Enero 2010, 16:42 »

Yo estoy fuera todo el finde asi que me imagino que cuando vuelva ya estara resuelto. Aunque cuando vuelva lo intento que me parece bastante interesante.
En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
CaronteGold


Desconectado Desconectado

Mensajes: 337



Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #100 en: 8 Enero 2010, 17:02 »

Me cachis!  >:(

No hay manera de que me tire lo que busco! pensé que quizás google había cambiado la manera en la que muestra resultados (y no eran accesibles), pero acabo de probar con otro lenguaje (vbs) y no tengo problemas en listar las imagenes!, pero en este caso, ponga lo que le ponga (cambiando user-agent y demás) me sigue pateando con un error 403!

Arghhhhh  >:(

  Yo seguiré intentando a ver....,  creo que  será con el módulo urllib ¿?,  lol como mola este emoticono --->  >:( >:(
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 889


Imagen recursiva


Ver Perfil WWW
Re: Juego ejercicios [Python]
« Respuesta #101 en: 8 Enero 2010, 17:04 »

Yo me pondré a intentarlo esta noche  >:( >:( >:( es verdad, si que mola.
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #102 en: 8 Enero 2010, 17:23 »

jaja, ya lo tengo terminado, el problema era que estaba generando mal la consulta con urllib, lo raro es que si bien estaba pasando parámetros equivocados a la función urlopen no me pateaba eso, sino un error 403 (igual eran dos problemas separados) :P

Otra cosa ... desde ya les digo que deben de cambiar el user-agent al hacer el GET a google, porque el user-agent por defecto de urllib/urllib2 es "Python-urllib/2.6/3.1", y a google no le gusta :silbar:

:http://www.user-agents.org/

[Edito]
Debo de agregar además, que si bien no es "difícil", como que tampoco es muy sencillo para los que comienzan :-X (era mi idea inicial)

Saludos
« Última modificación: 9 Enero 2010, 03:32 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

CaronteGold


Desconectado Desconectado

Mensajes: 337



Ver Perfil
Re: Juego ejercicios [Python]
« Respuesta #103 en: 9 Enero 2010, 05:15 »


 Al hacer urlopen, se supone que copio el source, pero no, copio algo incorrecto :S :S  >:( >:(
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 889


Imagen recursiva


Ver Perfil WWW
Re: Juego ejercicios [Python]
« Respuesta #104 en: 9 Enero 2010, 13:06 »

No, al hacer urlopen no te devuelve el source, te devuelve un objeto. Lo que te devuelve el source es el método .read() de ese objeto.
Yo ahora mismo estoy en windows por qué la lié con linux y no voy a poder hacer nada, aunque de todas formas lo acabaré haciendo.
En línea

Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reto/Juego Ejercicios en Python « 1 2 3 4 »
Ejercicios
Novlucker 47 9,119 Último mensaje 20 Diciembre 2010, 06:47
por [L]ord [R]NA
Life of a coder (Juego Python)
Scripting
_ 0 511 Último mensaje 22 Junio 2011, 19:57
por _
[python] ayuda con juego de dados
Scripting
zZznewbiezZz 4 1,515 Último mensaje 26 Junio 2011, 01:27
por zZznewbiezZz
ejercicios en python
Scripting
ramontxu 2 501 Último mensaje 15 Diciembre 2011, 21:56
por ramontxu
Ejercicios python con solucion
Programación General
bichotg 0 197 Último mensaje 17 Febrero 2012, 00:33
por bichotg
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines