Jump to content

Proteção de Script po MySQL [AJUDA]


Recommended Posts

Bom, eu tenho uma proteção que funciona checando o IP pelo site http://checkip.dyndns.com/

Eu queria evoluir e colocar para Funcionar via MySQL só que a única coisa que consegui foi conectar a DataBase, se alguém puder ajudar eu agradeço muito.

 

function connect()
    DBConnection = dbConnect( "mysql", "dbname=dbname;host=host;charset=utf8", "user", "senha" )
    if (not DBConnection) then
        outputDebugString("Mysql error")
    else
        outputDebugString("Mysql Connected")
    end
end

addEventHandler("onResourceStart",resourceRoot, connect)
 
function query(...)
    local queryHandle = dbQuery(DBConnection, ...)
    if (not queryHandle) then
        return nil
    end
    local rows = dbPoll(queryHandle, -1)
    return rows
end
 
function execute(...)
    local queryHandle = dbQuery(DBConnection, ...)
    local result, numRows = dbPoll(queryHandle, -1)
    return numRows
end

function getDBConnection()
    return DBConnection
end

------------------------------- o script da proteção é essa 
SERVER_IP = "false"

function startIPChecking ()
	if (hasObjectPermissionTo (getThisResource(), "function.fetchRemote", false)) then -- Se o resource de segurança tem permissão de fetchRemote, então:
		fetchRemote ("http://checkip.dyndns.com/", myCallback, "", false) -- Obtém o IP do servidor através deste link.
	else
		outputDebugString ("The resource '"..getResourceName (getThisResource()).."' needs the following permission: function.fetchRemote", 1)
		SERVER_IP = "false"  -- O resource de segurança precisa da seguinte permissão: function.fetchRemote para poder obter o IP do servidor.
	end
end
addEventHandler ("onResourceStart", resourceRoot, startIPChecking)

function myCallback (responseData, errors)
	if (errors == 0) then -- Se não houve erros durante o callBack, então:
		SERVER_IP = responseData:match("<body>Current IP Address: (.-)</body>") -- SERVER_IP recebe uma string com o IP do servidor.
	else
		SERVER_IP = "error"
	end
end

function getServerIP() -- Função exportada
	return SERVER_IP
end


function authorizeResource ()
	authorizedIP = "000.000.000.000"
	local ip = exports["serverIP"]:getServerIP () -- ip recebe o valor que está na variável Server_IP do resource de segurança.
	if (ip ~= authorizedIP) then -- Se o IP que recebeu do resource de segurança for diferente do IP configurado neste resource, então:
		cancelEvent(true, "This resource was not purchased by this IP.") -- Cancela a ativação deste resource. (não precisa de permissão Admin)
		print ("Incorrect Server IP from: "..getResourceName(getThisResource()).." (REASON: "..getCancelReason ()..")")
	end
end
addEventHandler ("onResourceStart", resourceRoot, authorizeResource)

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...