elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Python 3.7 socket socket.gaierror errno7 cliente Android.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python 3.7 socket socket.gaierror errno7 cliente Android.  (Leído 2,728 veces)
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Python 3.7 socket socket.gaierror errno7 cliente Android.
« en: 27 Diciembre 2019, 16:11 pm »

Código
  1. import socket
  2. def MiSocket(hostname, port, content):
  3.    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4.    s.connect(("http://www.google.com", 80))
  5.    s.sendall(content)
  6.    s.shutdown(socket.SHUT_WR)
  7.    while 1:
  8.        data = s.recv(1024)
  9.        if data == "":
  10.            break
  11.        print ("Received: ")
  12.        print (data)
  13.    print ("Connection closed.")
  14.    s.close()
  15.  
  16. MiSocket("Los", "errores me", "tienen las bolas llenas xD")

File "<string>", line 16, in <module>
  File "<string>", line 4, in MiSocket
socket.gaierror: [Errno 7] No address associated with hostname

Si uso el wget, nc, navegador... Funciona bien.
Probé hardcodeando la IP en IPv4 e IPv6 y me tira exactamente el mismo error.


« Última modificación: 27 Diciembre 2019, 16:13 pm por @?0!,5^34 » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Python 3.7 socket socket.gaierror errno7 cliente Android.
« Respuesta #1 en: 27 Diciembre 2019, 16:25 pm »

por lo que veo el error es aqui

Código
  1. s.connect(("http://www.google.com", 80))


gaierror es error en el get address info

basicamente le estas diciendo que se conecte el host "http://www.google.com" y cuando intenta hacer la resolucion, ese host es invalido porque tiene simbolos como : y / , y no puede resolver la direccion ip

en pocas palabras, pasa el host... no tienes que pasar el protocolo http:// porque socket no entiende eso, es una interfaz de bajo nivel


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Python 3.7 socket socket.gaierror errno7 cliente Android.
« Respuesta #2 en: 28 Diciembre 2019, 00:09 am »

por lo que veo el error es aqui

Código
  1. s.connect(("http://www.google.com", 80))


gaierror es error en el get address info

basicamente le estas diciendo que se conecte el host "http://www.google.com" y cuando intenta hacer la resolucion, ese host es invalido porque tiene simbolos como : y / , y no puede resolver la direccion ip

en pocas palabras, pasa el host... no tienes que pasar el protocolo http:// porque socket no entiende eso, es una interfaz de bajo nivel
Grache buen cheñor.

Si no me lo dices seguro que me habría tirado horas a intentar resolverlo. Habría probado hasta a crear un server DNS para que me resolviera el dominio creo yo.

Código
  1. import socket
  2. def cliente(host, puerto, contenido):
  3.    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4.    s.connect((host, puerto))
  5.    contenido="GET /index.html HTTP/1.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n"
  6.    contenido = contenido.encode('utf-8')
  7.    s.sendall(contenido)
  8.    response = b''
  9.    while 1:
  10.        recv = s.recv(2048)
  11.        resp = repr(recv)
  12.        respT= len(resp)
  13.        if respT < 5:
  14.            break
  15.        response += recv
  16.    s.shutdown(socket.SHUT_WR)
  17.    s.close()
  18.    return response
  19.  
  20. respuesta = cliente("google.com" , 80 , 1)
  21. print(respuesta)
  22. print("Fin ejec")

Voy a ver si hago con un colega un rat multiplataforma que importe módulos con kivy o algo así que se ve chulo.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cliente/servidor socket « 1 2 »
Programación Visual Basic
mig5ueles 11 4,717 Último mensaje 22 Enero 2007, 20:47 pm
por mig5ueles
cliente del socket (ayuda)
Java
andaluz 2 2,754 Último mensaje 3 Abril 2011, 11:33 am
por andaluz
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 8,854 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
javascript - Socket Cliente
Desarrollo Web
sebah97 2 1,735 Último mensaje 19 Abril 2013, 05:07 am
por sebah97
¿Socket 1156 es compatible con el socket 1155?
Hardware
Karkass 8 17,223 Último mensaje 4 Marzo 2021, 04:32 am
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines