Pular para o conteúdo

Rastreando seu computador com Python via e-mail

Dica publicada em Linux / Introdução
Felipe Ruiz Peixoto RuizBRX11
Hits: 9.226 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.
# <feliperuiz.sax.eletronic@gmail.com>

import smtplib
from urllib import urlopen
from time import sleep
#####   SETTINGS
SSL=True
SERVER="smtp.gmail.com"
PORT=465
USER="email@gmail.com"
PASS="password"
TOADDR="email@gmail.com"
FROMADDR="email@gmail.com"
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()
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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@gmail.com"

Define o usuário deste servidor.

PASS="password"

Define a senha para entrar no servidor.

TOADDR="email@gmail.com"

Define o destinatário.

FROMADDR="email@gmail.com"

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

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Hardware Project Simulator 0.2 com interface gráfica e correções

TP-1 Engine - motor para criação de jogos

DEBwizard - Script para a criação de pacotes Deb

Web-ICQ no GNU/Linux - Como colocar no site e criar botão para executar

Hardware Project Simulator 0.23 - Mais fácil ainda!

Virtualização dos sistemas operacionais: CentOS, Debian, Slackware e Ubuntu (parte 2)

Bloqueie conteúdo adulto sem instalação alguma em sua casa/escritório com o OpenDNS FamilyShield

APT-GET: Resolvendo problemas com chave pública

Adicionando corretor ortográfico em português no Vim

Backup em HD slave no Linux

#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

Entre na sua conta para comentar.