[source] Resolver una dirección de IP de host desde una URL
Publicado: 29 Ago 2022, 14:14
Bien, esto nos será bastante útil por ejemplo en la creación del server de un RAT, para que en vez de pasarle nuestra IP que cambiará cada cierto tiempo, pasarle una dirección URL, por ejemplo usando
No-IP que nos redirigirá a nuestra IP aunque esta cambie.
No-IP que nos redirigirá a nuestra IP aunque esta cambie.
Código: Seleccionar todo
#include <winsock2.h> //librería de sockets
#include <ws2tcpip.h> //necesario para resolver el dns
#include <iostream>
#include <string>
#pragma comment (lib, "Ws2_32.lib")
using namespace std;
int main() {
string dns;
cout << "Introduce un dns: ";
cin >> dns;
WSADATA wsaData; //declaramos e inicializamos las estructuras del socket
DWORD dwRetval;
struct addrinfo* result = NULL;
struct addrinfo* ptr = NULL;
struct addrinfo hints;
struct sockaddr_in* sockaddr_ipv4 = { 0 };
WSAStartup(MAKEWORD(2, 2), &wsaData);
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; //establecemos el tipo de socket
hints.ai_protocol = IPPROTO_TCP;
dwRetval = getaddrinfo(dns.c_str(), "0", &hints, &result); //con "getaddrinfo" traducimos un protocolo de nombre de host a una dirección
for (ptr = result; ptr != NULL; ptr = ptr->ai_next) {
sockaddr_ipv4 = (struct sockaddr_in*)ptr->ai_addr;
}
freeaddrinfo(result);
WSACleanup();
cout << "IP: " << inet_ntoa(sockaddr_ipv4->sin_addr);
return 0;
}