Arquivo de 25/02/2012

Estou publicando um medidor de sinal que pode ser muito útil pra quem programa em PHP e deseja este recurso em seu sistema, é necessário apenas repassar o mac do cliente e o ip da torre onde será feita a consulta, o gráfico é gerado apartir do google graphs.

Caso alguém possua habilidades de gerar um gráfico apartir da aplicação seria interessante não ter dependência, um refresh automático a cada 5 segundos seria também bacana, fica a cargo de cada um adaptar a sua necessidade.

Caso façam melhorias no código postem aqui sempre que possível.

[PHP]
<?php
#=========== MEDIDOR DE SINAL VIA SNMP PARA MIKROTIK =========#
##—————–==== COMPILADO POR: ====——————##
##———– LUCIANO RAMPANELLI – M4D3@HOTMAIL.COM ———-##
#———————- www.nimoc.com.br ———————–#
#=================================================#
#
# No linux instale o snmp, o apache e o suporte a php
# No Mikrotik ative snmp read para comunity public
#

#snmpwalk -v 1 IP.DO.MK.TORRE .1.3.6.1.4.1.14988.1.1.1.2.1.3.0 -c public > sinais
#snmpwalk -v 1 IP.DO.MK.TORRE .1.3.6.1.4.1.14988.1.1.1.2.1.1.0 -c public > macs

$oidwireless = ‘.1.3.6.1.4.1.14988′;
$oidsinal = ‘.1.1.1.2.1.3.0′;
$oidmac = ‘.1.1.1.2.1.1.0′;
$comunidade = ‘public’;
$ipmk = ’10.1.10.252′;
$sinal = ‘-99′;

$hexmac = ’00:0E:2E:FB:33:09′; //AQUI ENTRA O MAC DO CLIENTE VIA PHP

$macid0 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f1′);
$macid1 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f2′);
$macid2 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f3′);
$macid3 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f4′);
$macid4 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f5′);
$macid5 = exec(‘echo ‘.$hexmac.’ |cut -d “:” -f6′);

$oidcli = hexdec($macid0).”.”.hexdec($macid1).”.”.hexdec($macid2).”.”.hexdec($macid3).”.”.hexdec($macid4).”.”.hexdec($macid5);

$oidcliente = $oidwireless.$oidsinal.$oidcli;
$sinal = exec(‘snmpwalk -v 1 ‘ . $ipmk . ” ” . $oidcliente .’ -c ‘. $comunidade .’ | awk \’{ print $4 }\”);
#$sinal = ‘-79′; //teste de cor das barras

$snr = round((100+$sinal)*1,1);
$cor = ‘FF0000′;

if ( $snr < 100 ) {
$cor = ’00FF00′;
}

if ( $snr < 41 ) {
$cor = ’00FF00′;
}

if ( $snr < 36 ) {
$cor = ’32CD32′;
}

if ( $snr < 31 ) {
$cor = ‘FFD700′;
}

if ( $snr < 26 ) {
$cor = ‘FF8C00′;
}

if ( $snr < 21 ) {
$cor = ‘FF0000′;
}

?>

<html>
<head>
<title> Medidor de Sinal </title>
<script language=”javascript” src=”http://www.google.com/jsapi”></script&gt;
</head>
<body>

<div id=”chart”></div>

<script type=”text/javascript”>
var queryString = ”;
var dataUrl = ”;

function onLoadCallback() {
if (dataUrl.length > 0) {
var query = new google.visualization.Query(dataUrl);
query.setQuery(queryString);
query.send(handleQueryResponse);
} else {
var dataTable = new google.visualization.DataTable();
dataTable.addRows(1);

dataTable.addColumn(‘number’);
dataTable.setValue(0, 0, <? echo $snr ?>);

draw(dataTable);
}
}

function draw(dataTable) {
var vis = new google.visualization.ImageChart(document.getElementById(‘chart’));
var options = {
chf: ‘c,lg,0,FF0100,0,22FF00,50′,
chxl: ”,
chxp: ”,
chxr: ’0,-100,0′,
chxs: ”,
chxtc: ”,
chxt: ‘x’,
chbh: ’14,2,1′,
chs: ’260×50′,
cht: ‘bhs’,
chco: ‘<? echo $cor ?>’,
chds: ’0,100′,
chd: ‘t:<? $snr ?>’,
chg: ’0,5,1,1′,
chma: ’15,15′,
chtt: ‘QUALIDADE DO SINAL’,
chts: ’676767,10.4′
};
vis.draw(dataTable, options);
}

function handleQueryResponse(response) {
if (response.isError()) {
alert(‘Error in query: ‘ + response.getMessage() + ‘ ‘ + response.getDetailedMessage());
return;
}
draw(response.getDataTable());
}

google.load(“visualization”, “1″, {packages:["imagechart"]});
google.setOnLoadCallback(onLoadCallback);

</script>
</body>
</html>

<font size=”1″ face=”Verdana, Arial, Helvetica, sans-serif” >
<? echo ” MAC:” . $hexmac . ” SIGNAL:” . $sinal . ”  SN: ” . $snr . “%”; ?>
[/PHP]

================================================

Seria bem interessante se ao acessar o cadastro do cliente o MK-AUTH pudesse mostrar o sinal em forma de gráfico em tempo real, com este script rodando é possível, atualização a cada 1s por snmp, show de bola.

Luciano Rampanelli – M4D3

Fonte: http://mk-auth.com.br/

Hoje vou falar sobre como ‘amarrar’ usuários aos computadores por setor.

- Por que isto é importante?

- Por qual motivo um funcionário do setor financeiro, acessaria a Internet na recepção?

Bem, vamos imaginar o mesmo problema que estava tendo aqui na empresa. As pessoas compartilhavam suas senhas da Internet e podiam ser acessados em qualquer computador da empresa.

A empresa tem uma política, onde, em qualquer compartilhamento de senha, o usuário é cancelado.

Isso que eu vou mostrar aqui, não é o melhor modelo para sanar este problema, creio que exista várias soluções superiores.

Mas esta não deixa de ser uma pequena solução. Pois, no pior dos casos, quando uma pessoa compartilhar a sua senha, a mesma poderá ser usada somente em seu setor.

Solução

Vamos criar um arquivo com os endereços MAC de cada setor:

# mkdir /etc/squid/computadores
# vi /etc/squid/computadores/setor

Quando o VI abrir, vamos inserir os endereços MACs dos computadores apenas do setor, conforme o exemplo abaixo:

00:1C:C0:5C:E4:5F
00:1C:C0:5C:E4:59

Agora vamos criar um arquivo com apenas os usuários dos setores:

# mkdir /etc/squid/usuarios
# vi /etc/squid/computadores/setor

Quando o VI abrir, vamos inserir os usuários do setor, conforme o exemplo abaixo:

edmarwsj
fulano

Agora vamos criar as ACLs:

acl computadores_setor arp “/etc/squid/computadores/setor”
acl usuarios_setor proxy_auth “/etc/squid/usuarios/setor”http_access allow computadores_setor usuarios_setor

* Faremos isso para cada setor da empresa.

Lembrando, que para inserir no VI, devemos apertar ‘Insert’, e para salvar, devemos aperta ESC e depois digitar:

:wqa

Espero que possa ajudar.

Publicado por Edmar Wantuil

Fonte: viva o linux