Fazendo login no Multilogin automaticamente
Conectar-se manualmente ao Multilogin a partir de vários dispositivos ou servidores pode ser demorado. Para automatizar esse processo, você pode usar a biblioteca Paramiko em Python.
Neste artigo, você aprenderá como fazer isso usando nosso exemplo de script. Ele percorre uma lista de servidores, cada um com suas próprias credenciais, e executa comandos de conexão.
Antes que você comece
- Garanta que seus dispositivos ou servidores sejam acessíveis via SSH com autenticação por senha
- Instale o Python e as bibliotecas abaixo em cada dispositivo ou servidor:
- solicitações de
- paramiko
- Salve o script
auto.py
em seu dispositivo local - Salve o script
signinmlx.py
em dispositivos ou servidores adicionais - Insira seus valores nas variáveis abaixo no script
signinmlx.py
:-
USERNAME
: e-mail da sua conta Multilogin X -
PASSWORD
: a senha da sua conta Multilogin X (criptografia MD5 não é necessária)
-
- Insira seus valores nas variáveis abaixo no script
auto.py
:SERVER-USERNAME
SERVER-PASSWORD
SERVER-IP
Executando o script
Os exemplos de script abaixo contêm configuração básica que permite fazer login na sua conta Multilogin X em vários servidores. Além disso, você pode:
- Adicione ações de perfil que você deseja acionar após fazer login usando
signinmlx.py
- Adicione mais comandos que deseja executar em servidores remotos usando
auto.py
- Adicione mais servidores ao parâmetro “users_credentials_and_ips” usando
auto.py
signinmlx.py
import requests
from hashlib import md5
# Input your Multilogin X account credentials
USERNAME = ""
PASSWORD = ""
MLX_BASE = "https://api.multilogin.com"
MLX_LAUNCHER = "https://launcher.mlx.yt:45001/api/v1"
HEADERS = {"Accept": "application/json", "Content-Type": "application/json"}
# Function
def sign_in(username, password):
# HTTP requests to APIs
sign_url = "https://api.multilogin.com/user/signin"
HEADERS = {
"Accept": "application/json",
"Content-Type": "application/json",
}
Payload = {
"email": username,
"password": str(md5(password.encode()).hexdigest()),
}
# POST request
resp = requests.post(sign_url, json=Payload, headers=HEADERS)
resp_json = resp.json()
# got bearer token
token = resp_json["data"]["token"]
return token
# PART 1
token = sign_in(USERNAME, PASSWORD)
HEADERS["Authorization"] = "Bearer " + token
print("token: " + token, end="")
auto.py
import paramiko
# Define the commands to run
commands = [
# "mlx &",
"python3 signinmlx.py"
]
# Define the list of users, passwords, and their corresponding IPs
users_credentials_and_ips = [
# ("SERVER-USERNAME", "SERVER-PASSWORD", "SERVER-IP"),
("SERVER-USERNAME", "SERVER-PASSWORD", "SERVER-IP"),
]
# Iterate over each user, password, and IP
for user, password, ip in users_credentials_and_ips:
print(f"Connecting to {user}@{ip}")
try:
# Connect to the SSH server with password authentication
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip, username=user, password=password)
# Execute each command
for cmd in commands:
print(f"Running command: {cmd}")
stdin, stdout, stderr = ssh_client.exec_command(cmd)
output = stdout.read().decode("utf-8")
error = stderr.read().decode("utf-8")
if output:
print(output)
if error:
print(error)
# Close the SSH connection
ssh_client.close()
except Exception as e:
print(f"Error connecting to {user}@{ip}: {str(e)}")
Guia de vídeo
Neste guia, mostramos como executar os scripts auto.py
e signinmlx.py
em uma máquina local com Windows 10 e um servidor VirtualBox com Ubuntu 20.