#if !defined _socket_included
	#include <sockets>
#endif

#define TASK_INDEX_CLOSE_SOCKETS 1124512

static Socket, SocketsData[1024];

public is_server_private(host[], topic[], name[], port) {
	if(!module_exists("sockets")) {
		server_print("[%s] Sockets not running!", name);
		return false;
	}

	new error, send_message[512];
	Socket = socket_open(host, 80, SOCKET_TCP, error);
	
	switch(error) {
		case 1: {
			server_print("[%s] The socket is not created!", name);
			return false;
		}
		case 2: {
			server_print("[%s] The web site is disabled!", name);
			return false;
		}
		case 3: {
			server_print("[%s] Provider may block your access!", name);
			return false;
		}
	}
	
	server_print("[%s] The connection was successful!", name);
	format(send_message, charsmax(send_message), "GET %s HTTP/1.1^nHost:%s^r^n^r^n", topic, host);
	socket_send(Socket, send_message, charsmax(send_message));
	server_print("[%s] The resulting data and compare the key..", name);
	
	set_task(15.0, "_remove_sockets", TASK_INDEX_CLOSE_SOCKETS);
	
	if(socket_change(Socket)) {
		socket_recv(Socket, SocketsData, charsmax(SocketsData));
		
		new md5_ip[34], address[23];
		get_user_ip(0, address, charsmax(address), port ? 0 : 1);
		md5(address, md5_ip);
		
		if(containi(SocketsData, md5_ip)) {
			server_print("[%s] The server is successfully activated!", name);
			socket_close(Socket);
			
			remove_task(TASK_INDEX_CLOSE_SOCKETS);
			
			return true;
		}
		else {
			server_print("[%s] Your license is not activated!^n[%s] To buy write vk.com/qwertyhard", name, name);
		}
	}
	
	return false;
}

public _remove_sockets(task) {
	socket_close(Socket);
}