def METHOD_NAME(address):
	try:
		sock = socket(AF_INET, SOCK_DGRAM)
		sock.settimeout(TIMEOUT)
		sock.sendto(PACKET_GETINFO3, address)
		data, addr = sock.recvfrom(1400)
		sock.close()
		data = data[14:] # skip header
		slots = data.split("\x00")
		server_info = {}
		server_info["token"] = slots[0]
		server_info["version"] = slots[1]
		server_info["name"] = slots[2]
		server_info["map"] = slots[3]
		server_info["gametype"] = slots[4]
		server_info["flags"] = int(slots[5])
		server_info["num_players"] = int(slots[6])
		server_info["max_players"] = int(slots[7])
		server_info["num_clients"] = int(slots[8])
		server_info["max_clients"] = int(slots[9])
		server_info["players"] = []
		for i in range(0, server_info["num_clients"]):
			player = {}
			player["name"] = slots[10+i*5]
			player["clan"] = slots[10+i*5+1]
			player["country"] = int(slots[10+i*5+2])
			player["score"] = int(slots[10+i*5+3])
			if int(slots[10+i*5+4]):
				player["player"] = True
			else:
				player["player"] = False
			server_info["players"].append(player)
		return server_info
	except:
		sock.close()
		return None