Os artigos mais lidos

Quarta, Janeiro 30, 2013 Helio Loureiro Blog 19316
XGH é uma das coisas mais genias que surgiu nos últimos tempos, descrevendo a estupidez que se aplica em métodos ágeis, mas que reflete bem o ambiente corporativo. Infelizmente o site foi abandonado...
Sábado, Maio 03, 2008 Helio Loureiro FreeBSD 16582
This article is kindly linked by: http://tuxmobil.org/hp_compaq.html http://tuxmobil.org/mobile_bsd.html Barely finished my last article about FreeBSD (PRERELEASE at that time) on Compaq laptops,...
Quarta, Junho 11, 2014 Helio Loureiro Blog 16134
Nem só de discussões de licença, flamewares, releases de kernel e ativistas sapatênis vive o mundo do software livre. Às vezes é envolto de mistério também. Um dos enigmas recentes foi o sumiço da...
Sexta, Maio 20, 2005 Helio Loureiro Python 15689
Esse é o script usado para autenticar automaticamente no Speedy da Telefonica (região de São Paulo). Evita que usuários residenciais, como eu, precisem estar em frente à máquina, permitindo que a...

Fonte: http://www.tiagodoria.ig.com.br/2007/08/28/edelman-prepara-estudo-inedito-sobre-blog-no-brasil/Para quem tem filho adolescente, sabe que as traquitanas tecnológicas tornaram a vida um inferno quando o assunto é estudar.  Controlar o acesso ao computador é fácil, criando regras de bloqueio após certos horários estabelecidos, ou mesmo permissão e filtragem de acessos à sites baseados em URL e squid.

Mas com a chegadas dos dispositivos móveis, como telefones Android e tablets, a coisa não ficou tão fácil.

Restou a opção de bloquear o acesso pelo MAC address nos horários de estudo (que em geral são transformados em horários de soneca durante a tarde ou televisão).

Então fiz um pequeno script em python que bloqueia os MACs já cadastrados, tanto do tablet quanto do smartphone, e libera nos horários em que o computador desktop também está liberado.  Com certeza isso não resolve o problema, mas com adolescentes, em geral, quase nada resolve.

O programa funciona com meu roteador wifi, um WR3G01, que comprei no Dealextreme (mais informações aqui).  É um roteador wireless que se diz compatível com DD-WRT, mas que pra isso exige soldar os contatos da conexão serial na placa e carregar o firmware por tftp (era mais fácil dizer que não suporta então).

 

O programa segue:

#! /usr/bin/python
import re, urllib2
from base64 import encodestring
from sys import argv

MACS = [ "94:63:AA:BB:CC:DD", "74:E1:AA:BB:CC:DD" ]
login = "admin"
password = "admin"
server = "192.168.0.1"
port = 80
URI = "/apply.cgi"

TAG =""
for mac in MACS:
  mac = re.sub(":",'%3A', mac)
  TAG += mac + '%3B'

def Usage():
  print "Use: %s {block|allow}" % argv[0]
  exit(1)


if (len(argv) < 2):
  Usage()
elif (not re.search("allow|block",argv[1])):
  Usage()
  
msg_body = "submit_button=wlan_access&" + \
  "change_action=&" + \
  "action=Apply&" + \
  "AccessControlList0=" + TAG + "&"

if (argv[1] == "allow"):
  msg_body += "AccessPolicy0=0&"
elif (argv[1] == "block"):
  msg_body += "AccessPolicy0=2&"
msg_body += "mac=&mac=&mac=&mac=&mac=&mac=&"
if (argv[1] == "allow"):
  msg_body += "selectMAC=1"
elif (argv[1] == "block"):
  msg_body += " selectMAC=3"

http_pass = encodestring(login + ":" + password)
url = "http://" + server + ":" + str(port) + URI

my_headers = {
  'User-Agent' : 'Python Client/1.0/1.0',
  'Authorization' : 'Basic ' + http_pass,
  'Content-Type' : 'application/x-www-form-urlencoded'
}

req = urllib2.Request(
  url,
  headers = my_headers,
  data = msg_body
)

print "Sending: %s" % argv[1]
resp = urllib2.urlopen(req)