Página 1 de 1

[source] Resolver una dirección de IP de host desde una URL

Publicado: 29 Ago 2022, 14:14
por Bl4ckV
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.

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;
} 

Re: [source] Resolver una dirección de IP de host desde una URL

Publicado: 30 Ago 2022, 06:09
por Flight embedded
Bl4ckV, ¡qué buen aporte!