• Viernes 8 de Noviembre de 2024, 10:51

Autor Tema:  Problema Con Sockets!  (Leído 4972 veces)

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Problema Con Sockets!
« en: Sábado 12 de Agosto de 2006, 11:03 »
0
Sólo quiero enviar con visulac++.net un paquete con la parte tcp e ip para ello.
creo el socket
sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
creo la parte de ip entera
((ip_hdr *)(datospaquete))->proto=IPPROTO_TCP;
la parte tcp entera
((tcp_hdr *)(datospaquete+datasizeip))->Porigen=htons(porigen);
((tcp_hdr *)(datospaquete+datasizeip))->Pdestino=htons(pdestino);
Después creo el sockaddr_in y por último lo envio
sendto(sock,datospaquete,datasizeip+datasizetcp,0,(struct sockaddr*)&sock_addr,sizeof(sock_addr));

El problema es que sale un error 10004, Una operación de bloqueo fue interrumpida por una llamada a WSACancelBlockingCall.

He enviado un paquete ip, pero uno con tcp ip da error, ya empiezo a dudar de que se pueda hacer en windows.

Alguien sabe algo???.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Problema Con Sockets!
« Respuesta #1 en: Sábado 12 de Agosto de 2006, 17:42 »
0
Es mejor que coloques mas codigo por que el codigo que has puesto no me dice como has definido algunas variables:

datospaquete
datasizeip
datasizetcp
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #2 en: Domingo 13 de Agosto de 2006, 12:24 »
0
juank si kieres te envio el código, tu lo has intentado alguna vez? realmente se puede?

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Problema Con Sockets!
« Respuesta #3 en: Domingo 13 de Agosto de 2006, 18:31 »
0
nunca lo he intentado, pero de que se puede se debe de poder, solo hay que insistirle y documentarce bien.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #4 en: Domingo 13 de Agosto de 2006, 19:57 »
0
DEFINITIVAMENTE no se puede enviar paquetes construidos tcp con windows xp sp2, incluso si has instalado el MS05-019 tendrías que volver a darle permiso para utilizar los sockets raw.

Habrá k lanzarlo en win2000 o linux k remedio!.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #5 en: Lunes 14 de Agosto de 2006, 02:37 »
0
Exactamente que quieres hacer?
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #6 en: Lunes 14 de Agosto de 2006, 23:37 »
0
Pues ciertamente ahora k ya se k sólo se puede enviar paquetes tcp,ip a través de win2000 o linux, kería saber como enviar un paquete arp ethernet.

pork por ejemplo el socket k sería

sock = socket(AF_INET,SOCK_RAW,IPPROTO_ARP);

IPPROTO_ARP No existe, cúal sería?

y después al crear el struct sockaddr addr;

sock_addr.sa_data cúal será pork si estuviesemos en linux sería eth0 pero en windows como distingues la tarjeta de red?.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #7 en: Lunes 14 de Agosto de 2006, 23:57 »
0
no se como sea exactamente pero en Perl tienes que definir el protocolo primero.
Has algo como esto.
init proto = getprotobyname('tcp');
socket(Socket_Handle, AF_INET, SOCK_RAW, proto);
Pero no recuerdo, era algo asi.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #8 en: Lunes 14 de Agosto de 2006, 23:59 »
0
En cuanto a arp ethernet, mira libpcap o algo asi.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #9 en: Martes 15 de Agosto de 2006, 02:09 »
0
ok, gracias, más o menos ya se como va el tcp,

Y con WinPcap se puede hacer uso de algun modo para el visual c++.net y así implementarlo???

Pork sino creo k tampoco se puede enviar un paquete, creado por ti, ethernet.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #10 en: Martes 15 de Agosto de 2006, 03:06 »
0
No se, que los de Visual c++ .net digan.
Por sierto, el paquete no es propiamente ethernet, es AF_INET, el ethernet, si mal no estoy se hace atraves de pcap o quizas con libnet hmmm, no se, mira el comando termcap.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Problema Con Sockets!
« Respuesta #11 en: Martes 15 de Agosto de 2006, 05:38 »
0
Cita de: "falcatin"
ok, gracias, más o menos ya se como va el tcp,

Y con WinPcap se puede hacer uso de algun modo para el visual c++.net y así implementarlo???

Pork sino creo k tampoco se puede enviar un paquete, creado por ti, ethernet.
Si se puede, tal como seria en lenguaje C.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

falcatin

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Problema Con Sockets!
« Respuesta #12 en: Martes 15 de Agosto de 2006, 22:31 »
0
Pues sip, con Winpcap se puede hacer todo bastante más facíl,  incluso tiene modo remote, puedes capturar paquetes en modo promiscuo e incluso enviar paquetes
 :kicking:  :kicking:  :kicking:
Por lo menos eso pone en su página web.
Lo único es añadir la librería wpcap.lib y todo funciona. al menos ver los dispositivos de red y capturar un paquete que es lo k llevo probado.