35 lines
		
	
	
		
			738 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			738 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
 | 
						|
#include "hplatform.h" // inet_ntop
 | 
						|
#include "dns.h" // nslookup
 | 
						|
 | 
						|
int main(int argc, char* argv[]) {
 | 
						|
    if (argc < 2) {
 | 
						|
        printf("Usage: nslookup domain [nameserver]\n");
 | 
						|
        return -1;
 | 
						|
    }
 | 
						|
 | 
						|
    const char* domain = argv[1];
 | 
						|
    const char* nameserver = "127.0.1.1";
 | 
						|
#ifndef OS_LINUX
 | 
						|
    nameserver = "114.114.114.114";
 | 
						|
    // nameserver = "8.8.8.8";
 | 
						|
#endif
 | 
						|
 | 
						|
    if (argc > 2) {
 | 
						|
        nameserver = argv[2];
 | 
						|
    }
 | 
						|
 | 
						|
    uint32_t addrs[16];
 | 
						|
    int naddr = nslookup(domain, addrs, 16, nameserver);
 | 
						|
    if (naddr < 0) {
 | 
						|
        return naddr;
 | 
						|
    }
 | 
						|
    char ip[16];
 | 
						|
    for (int i = 0; i < naddr; ++i) {
 | 
						|
        inet_ntop(AF_INET, (void*)&addrs[i], ip, 16);
 | 
						|
        printf("%s\n", ip);
 | 
						|
    }
 | 
						|
    return 0;
 | 
						|
}
 |