Buenas, gente!
Este es mi primer post en la comunidad, y quería compartir con uds. un bot de conexión inversa, con la peculiaridad de que sólo es necesario tener un servidor web, ya que los comandos a ejecutar se van a pasar vía peticiones POST.
Si ya tienen un servidor web en la nube, mejor. Si no es así, pueden instalar XAMPP o LAMP y abrir el puerto 80 (recomiendo contratar un servidor web).
El archivo PHP que deben subir al servidor, es el siguiente:
Una vez subido ese archivo al servidor, pasamos a crear el bot (en Python), el cual se va a conectar a nuestro servidor y va a buscar la tarea a ejecutar, siempre verificando que la fecha y hora de la misma no esté dentro de la lista de tareas ejecutadas.
Recuerden que la dirección http://localhost/ se debe reemplazar por la dirección del servidor al que queremos que el bot se conecte.
Para agregar más comandos al bot, simplemente se deben agregar más condiciones if, verificando el contenido string en la variable task.
Espero que les guste.
Adios!
Este es mi primer post en la comunidad, y quería compartir con uds. un bot de conexión inversa, con la peculiaridad de que sólo es necesario tener un servidor web, ya que los comandos a ejecutar se van a pasar vía peticiones POST.
Si ya tienen un servidor web en la nube, mejor. Si no es así, pueden instalar XAMPP o LAMP y abrir el puerto 80 (recomiendo contratar un servidor web).
El archivo PHP que deben subir al servidor, es el siguiente:
Código (php) [Seleccionar]
<?php
$task = "task.txt";
if (!file_exists($task))
{
$handle = fopen($task, "a");
fwrite($handle, "");
fclose($handle);
}
if (isset($_POST["send"]))
{
$handle = fopen($task, "w");
fwrite($handle, date("Y-m-d H:i:s") . ";" . $_POST["send"]);
fclose($handle);
}
?>
<form method="post" action="#">
<input type="text" name="send" autocomplete="off">
</form>
Una vez subido ese archivo al servidor, pasamos a crear el bot (en Python), el cual se va a conectar a nuestro servidor y va a buscar la tarea a ejecutar, siempre verificando que la fecha y hora de la misma no esté dentro de la lista de tareas ejecutadas.
Código (python) [Seleccionar]
import requests
import time
tasks = []
def getTask():
url = "http://localhost/task.txt"
task = requests.get(url).text.split(";")
if len(task) > 1:
if task[0] in tasks:
return None
else:
tasks.append(task[0])
return task[1]
else:
return None
while True:
task = getTask()
if task != None:
if task == "status":
print("Bot status: Online.\n")
time.sleep(1)
Recuerden que la dirección http://localhost/ se debe reemplazar por la dirección del servidor al que queremos que el bot se conecte.
Para agregar más comandos al bot, simplemente se deben agregar más condiciones if, verificando el contenido string en la variable task.
Espero que les guste.
Adios!