Rastreando seu computador com Python via e-mail

Publicado por Felipe Ruiz Peixoto em 15/02/2013

[ Hits: 6.796 ]

Blog: https://www.ubuntu.com/

 


Rastreando seu computador com Python via e-mail



Pode ser muito útil saber quando alguém está usando seu computador, junto com algumas informações como o IP e o local. Nesta dica, vou mostrar um simples programa, explicando o código.

O código do programa:

#!/bin/python
#SEND CURRENT NETWORK INFORMATION USING A ONLINE TOOL
#CAN BE EXECUTED AS A DAEMON IN THE OS LOGIN OR START, RENAMED AND HIDDEN.
# <[email protected]>

import smtplib
from urllib import urlopen
from time import sleep
#####   SETTINGS
SSL=True
SERVER="smtp.gmail.com"
PORT=465
USER="[email protected]"
PASS="password"
TOADDR="[email protected]"
FROMADDR="[email protected]"
URL="http://www.geoiptool.com"

conn_repeat=True
while conn_repeat:
  if SSL:
    try :
         server = smtplib.SMTP_SSL(SERVER, PORT)
         conn_repeat=False
    except : pass
  else :
    try :
         server = smtplib.SMTP(SERVER, PORT)
         server.starttls()
         conn_repeat=False
    except : pass
  sleep(45)

server.ehlo()

server.login(USER, PASS)
msg=urlopen(URL).read()
server.sendmail(FROMADDR, TOADDR, msg)
server.quit()

Este pequeno código acessa um servidor de e-mails, no caso o Gmail, pois é gratuito. Depois ele acessa a Internet e pega as informações do computador em um site especializado nisto, no caso o Geo IP. Podemos alterar este programa para ele enviar também informações de hardware e outras.

Depois de pegar as informações, ele envia tudo para um endereço de e-mail. Ele faz tudo isso automaticamente e silenciosamente.

Este programa tenta enviar várias vezes, com um intervalo de um pouco menos de 1 minuto, até conseguir.

Explicando o código:
  • import smtplib → Esta parte do código importa o "smtplib", necessário para enviar e-mails.
  • from urllib import urlopen → Importa o "urlopen" da "urllib", para acessar a Internet.
  • from time import sleep → O "sleep" da "time", que faz o programa esperar um tempo, uma pausa.

Continuando:

SSL=True

Define se a conexão será com SSL ou não.

SERVER="smtp.gmail.com"

Define o servidor de e-mail.

PORT=465

Define a porta para se conectar com o servidor.

USER="[email protected]"

Define o usuário deste servidor.

PASS="password"

Define a senha para entrar no servidor.

TOADDR="[email protected]"

Define o destinatário.

FROMADDR="[email protected]"

Define o remetente.

URL="http://www.geoiptool.com"

Define o site que mostra as informações do computador.

conn_repeat=True

Controla as tentativas de envio.

while conn_repeat:
  if SSL:
     try :
         server = smtplib.SMTP_SSL(SERVER, PORT)
         conn_repeat=False
     except : pass
  else :
     try :
         server = smtplib.SMTP(SERVER, PORT)
         server.starttls()
         conn_repeat=False
     except : pass
  sleep(45)

Fica tentando conectar a cada 45 segundos, até conseguir.

E:
  • server.ehlo() → Começa a troca de informações.
  • server.login(USER, PASS) → Obtém autorização do servidor.
  • msg=urlopen(URL).read() → Acessa o site e pega seu conteúdo.
  • server.sendmail(FROMADDR, TOADDR, msg) → Envia o conteúdo como uma mensagem para o e-mail configurado no inicio do código.
  • server.quit() → Fecha a conexão com o servidor.

Você pode usar este programa como quiser. Eu coloquei ele na pasta /root e alterei o "rc.local" para executá-lo na inicialização do meu notebook.

Recomendo renomear o arquivo para aumentar a segurança. ;D

Espero que gostem da brincadeira. :D

Outras dicas deste autor

Hardware Project Simulator 0.1 - Simulador de montagem de computadores

Wolfenstein Enemy Territory no Ubuntu 12 com som e Omnibots

Hardware Project Simulator 0.23 - Mais fácil ainda!

[RESOLVIDO] Links e botões que não funcionam no navegador

Minetest - Pacote de expansão

Leitura recomendada

Instalando XMMS no Ubuntu 9.04

Instalação da impressora Brother MFC-8480DN pela rede no Debian

Cacti em distribuições Debian - Instalando plugins

Desenvolvimento para Android - Particularidades do projeto

Deletar kernel antigo para não aparecer no GRUB2

  

Comentários
[1] Comentário enviado por nickmarinho em 15/02/2013 - 11:55h

Dahora cara parabéns eu curtí isso!

www.racaboxer.com.br

www.lucianomarinho.com.br

[2] Comentário enviado por lueneberg em 17/02/2013 - 02:12h

ola, uso linuxmint 14, tive que fazer uma alteração no inicio do script: #!/usr/bin/env python (para ele funcionar no Mint)
ele roda e manda o email, só que aparece muito caracteres extranhos, e nao consigo abrir o link do mapa, como mostra abaixo:

<head>
<meta name="DESCRIPTION" content="View my IP information: MEU IP">
<META NAME="KEYWORDS" CONTENT="geographical, geografica, mapa, google map, google maps, maps, map, ip, hostname, city, location, ip address, direccion ip">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>View my IP information: MEU IP - Geo IP Tool</title>
<link href="/images/estilos.css" rel="stylesheet" type="text/css">
<link rel="image_src" href="http://geoiptool.com/images/screen.png" />

<script type="text/javascript" src="http://vk.com/js/api/share.js?11" charset="windows-1251"></script>

<script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAn1GGTNuR0Ls78lQTSm1aZxRSKfi1QmGD0_ReqqiCC-wtqSg_3BSEC0xGArCDV8JW8hevPr9QtQYeJQ" type="text/javascript"></script>
</head>
<body

[3] Comentário enviado por RuizBRX11 em 17/02/2013 - 11:03h


[2] Comentário enviado por lueneberg em 17/02/2013 - 02:12h:

ola, uso linuxmint 14, tive que fazer uma alteração no inicio do script: #!/usr/bin/env python (para ele funcionar no Mint)
ele roda e manda o email, só que aparece muito caracteres extranhos, e nao consigo abrir o link do mapa, como mostra abaixo:

<head>
<meta name="DESCRIPTION" content="View my IP information: MEU IP">
<META NAME="KEYWORDS" CONTENT="geographical, geografica, mapa, google map, google maps, maps, map, ip, hostname, city, location, ip address, direccion ip">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>View my IP information: MEU IP - Geo IP Tool</title>
<link href="/images/estilos.css" rel="stylesheet" type="text/css">
<link rel="image_src" href="http://geoiptool.com/images/screen.png" />

<script type="text/javascript" src="http://vk.com/js/api/share.js?11" charset="windows-1251"></script>

<script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAn1GGTNuR0Ls78lQTSm1aZxRSKfi1QmGD0_ReqqiCC-wtqSg_3BSEC0xGArCDV8JW8hevPr9QtQYeJQ" type="text/javascript"></script>
</head>
<body


Aparece todo este código porque eu não fiz o programa selecionar apenas o que é importante (é possível), ele pega toda a página e manda para seu e-mail. Experimente copiar o código todo que foi enviado para um editor de texto, salvar como qualquercoisa.html e abrir no firefox.

O mapa só abre no site porque é um código java de uma ferramenta da google. Vou ver se encontro um jeito de abrir o mapa sem precisar do site inteiro.

[4] Comentário enviado por lueneberg em 17/02/2013 - 11:52h


[3] Comentário enviado por felipeludo2011 em 17/02/2013 - 11:03h:


[2] Comentário enviado por lueneberg em 17/02/2013 - 02:12h:

ola, uso linuxmint 14, tive que fazer uma alteração no inicio do script: #!/usr/bin/env python (para ele funcionar no Mint)
ele roda e manda o email, só que aparece muito caracteres extranhos, e nao consigo abrir o link do mapa, como mostra abaixo:

&lt;head&gt;
&lt;meta name="DESCRIPTION" content="View my IP information: MEU IP"&gt;
&lt;META NAME="KEYWORDS" CONTENT="geographical, geografica, mapa, google map, google maps, maps, map, ip, hostname, city, location, ip address, direccion ip"&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;View my IP information: MEU IP - Geo IP Tool&lt;/title&gt;
&lt;link href="/images/estilos.css" rel="stylesheet" type="text/css"&gt;
&lt;link rel="image_src" href="http://geoiptool.com/images/screen.png" /&gt;

&lt;script type="text/javascript" src="http://vk.com/js/api/share.js?11" charset="windows-1251"&gt;&lt;/script&gt;

&lt;script src="http://maps.google.com/maps?file=api&amp;v=1&amp;key=ABQIAAAAn1GGTNuR0Ls78lQTSm1aZxRSKfi1QmGD0_ReqqiCC-wtqSg_3BSEC0xGArCDV8JW8hevPr9QtQYeJQ" type="text/javascript"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body

Aparece todo este código porque eu não fiz o programa selecionar apenas o que é importante (é possível), ele pega toda a página e manda para seu e-mail. Experimente copiar o código todo que foi enviado para um editor de texto, salvar como qualquercoisa.html e abrir no firefox.

O mapa só abre no site porque é um código java de uma ferramenta da google. Vou ver se encontro um jeito de abrir o mapa sem precisar do site inteiro.



ok, deu certo, não sei se vou falar besteira, mais o google drive permite agora sites, sera que não tem como usar este recurso para gerar um html ou parecido e mandar direto para o google drive ( não sei se é possivel)..

[5] Comentário enviado por thelukas777 em 21/02/2013 - 10:38h

Olá ,fiz alguns testes e observei que infelizmente as informações de latitude e longitude não são exatas ,mas já é de grande valia.


abraço !



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts