使用c++实现IP到域

IP to domain using C++

本文关键字:到域 IP 实现 c++ 使用      更新时间:2023-10-16

我想用c++语言写一个程序,返回给定IP地址的域列表(我认为它是Revers DNS)。
这有点像BING IP反向方法。
我也熟悉WinPcap。
我测试了gethostbyaddr()和getaddrinfo()等其他函数,但我真的不能做我想做的。最优惠的报价是多少?

// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0) {
    printf("WSAStartup failed: %dn", iResult);
    return 1;
}
host_addr = argv[2];
printf("Calling gethostbyaddr with %sn", host_addr);
if (bIpv6 == 1) {
    {
        iResult = inet_pton(AF_INET6, host_addr, &addr6);
        if (iResult == 0) {
            printf("The IPv6 address entered must be a legal addressn");
            return 1;
        } else
            remoteHost = gethostbyaddr((char *) &addr6, 16, AF_INET6);
    }
} else {
    addr.s_addr = inet_addr(host_addr);
    if (addr.s_addr == INADDR_NONE) {
        printf("The IPv4 address entered must be a legal addressn");
        return 1;
    } else
        remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
}
if (remoteHost == NULL) {
    dwError = WSAGetLastError();
    if (dwError != 0) {
        if (dwError == WSAHOST_NOT_FOUND) {
            printf("Host not foundn");
            return 1;
        } else if (dwError == WSANO_DATA) {
            printf("No data record foundn");
            return 1;
        } else {
            printf("Function failed with error: %ldn", dwError);
            return 1;
        }
    }