#include "dnsaccess.h" /*Used because of stupid idea that IP address could be use rather then Name */ char* get_hostname_from_addr(char* addr, char* host, unsigned host_length){ //Finds names assoicated to an IP address. struct sockaddr_in sa; memset(&sa, 0, sizeof(struct sockaddr_in)); sa.sin_family = AF_INET; inet_pton(AF_INET, addr, &(sa.sin_addr)); getnameinfo((struct sockaddr*) &sa, sizeof(struct sockaddr_in), host, host_length, NULL, 0, 0); return host; } /* In final code, I do not think this is ever used */ char* get_first_addr_from_hostname(char* domain_name){ //Finds IP addresses associated to a domain name. struct addrinfo hints; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; struct addrinfo* result; getaddrinfo(domain_name, NULL, &hints, &result); struct sockaddr_in* sa = (struct sockaddr_in*) result->ai_addr; struct in_addr ip_addr = sa->sin_addr; char* addr = inet_ntoa(ip_addr); return addr; } bool check_IP_address(char* addr){ struct sockaddr_in sa; return inet_pton(AF_INET, addr, &(sa.sin_addr)) != 0; }