Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - skollprog

#1
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:


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($handledate("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!