Stránka 1 z 2

snmp php a signál

Napsal: 16 Jul 2009 21:04
od okoun
ahoj, zkoušel někdo pomocí snmp v php zobrazit signál na kartě ?

Re: snmp php a signál

Napsal: 16 Jul 2009 22:20
od Nick_xx
okoun píše:ahoj, zkoušel někdo pomocí snmp v php zobrazit signál na kartě ?

A ty jsi to zkoušel?

Re: snmp php a signál

Napsal: 16 Jul 2009 23:17
od okoun
něco jsem študoval na mikrotik wiki ale nějak to nechodilo :(

Re: snmp php a signál

Napsal: 17 Jul 2009 09:14
od hapi
jo zkoušel, je tu na to software kterej to vytahne pomocí snmp. Jak se to menuje no.

/interface wireless registration-table print oid

Re: snmp php a signál

Napsal: 29 Jul 2009 22:03
od okoun
no to co si sem napsal jsem dal do terminálu a vypsalo to, ale potřebuji nějaký php script, který to vypíše v prohlížeči

Re: snmp php a signál

Napsal: 29 Jul 2009 22:09
od hapi
$mac = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.1");
$signal = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3");

print_r($mac);
print_r($signal);

Re: snmp php a signál

Napsal: 10 Aug 2009 18:13
od LaCosta
staci trochu chciet ...

Kód: Vybrat vše

<?php
# /-----------------------------------\
# | Written By: Ian Redden            |
# | Date: December 21st, 2005         |
# \-----------------------------------/
#
# $host = ip address of mikrotik box
# $community = ro/rw community name
#
$host = "192.168.1.1";
$community = "public";
#
# Purpose:
# --------
# Not sure really.  Wrote it as a test to work with MRTG/RRDTOOL to
# graph wireless signal levels of connected clients.
#
# ENJOY!
#
# Requirements:
# -------------
# PHP 4 with SNMP
#
# Example Output:
# ---------------
# 00:01:F4:EC:8C:DC,-48 dBm,1135220890,omni-wireless
# 00:02:6F:39:63:89,-23 dBm,1135220890,omni-wireless
# 00:02:6F:39:65:14,-64 dBm,1135220890,home-link
# 00:02:6F:39:65:27,-59 dBm,1135220890,omni-wireless
# 00:02:6F:39:66:A1,-30 dBm,1135220890,omni-wireless
# 00:02:6F:39:68:98,-60 dBm,1135220890,omni-wireless
# 00:04:5A:2D:B2:7E,-59 dBm,1135220890,omni-wireless
# 00:06:11:00:01:90,-27 dBm,1135220890,omni-wireless
# 00:06:11:00:07:B3,-31 dBm,1135220890,omni-wireless
# 00:06:11:00:07:B4,-50 dBm,1135220890,omni-wireless
# 00:06:11:00:0F:0A,-48 dBm,1135220890,omni-wireless
# 00:06:11:00:16:F7,-30 dBm,1135220890,omni-wireless
# 00:06:11:00:17:05,-44 dBm,1135220890,omni-wireless
# 00:06:11:00:18:89,-55 dBm,1135220890,omni-wireless
# 00:06:11:00:19:48,-44 dBm,1135220890,omni-wireless
# 00:06:11:01:00:72,-50 dBm,1135220890,omni-wireless
# 00:06:11:01:00:8C,-32 dBm,1135220890,omni-wireless
# 00:06:11:01:04:35,-51 dBm,1135220890,omni-wireless
# 00:06:11:01:04:85,-46 dBm,1135220890,omni-wireless
# 00:06:11:20:11:DA,-66 dBm,1135220890,omni-wireless
# 00:06:11:20:14:38,-42 dBm,1135220890,omni-wireless
# 00:06:11:20:14:45,-49 dBm,1135220890,omni-wireless
# 00:06:11:20:16:75,-67 dBm,1135220890,omni-wireless
# 00:0C:41:3A:3A:04,-41 dBm,1135220890,omni-wireless
# 00:0C:41:3A:3E:9C,-48 dBm,1135220890,omni-wireless
# 00:12:17:0D:A5:9B,-62 dBm,1135220890,omni-wireless
# 00:12:17:0F:01:4D,-49 dBm,1135220890,omni-wireless
# 00:12:17:CD:BA:47,-45 dBm,1135220890,omni-wireless
# 00:13:10:3D:5B:6E,-55 dBm,1135220890,omni-wireless
# 00:50:18:02:70:89,-29 dBm,1135220890,omni-wireless
# 00:60:B3:19:43:E1,-28 dBm,1135220890,omni-wireless
#
function fsnmpget($host, $community, $mib) {
    $str = snmpget($host, $community, $mib);
    $str = str_replace("STRING: ", "", $str);
    $str = str_replace("GAUGE32: ", "", $str);
    $str = str_replace("COUNTER32: ", "", $str);
    $str = str_replace("HEX: ", "", $str);
    $str = str_replace("INTEGER: ", "", $str);
    $str = str_replace("\"", "", $str);
    return $str;
}

function fsnmpwalk($host, $community, $mib) {
    $str = snmpwalk($host, $community, $mib);
    $str = str_replace("STRING: ", "", $str);
    $str = str_replace("COUNTER32: ", "", $str);
    $str = str_replace("GAUGE32: ", "", $str);
    $str = str_replace("INTEGER: ", "", $str);
    $str = str_replace("HEX: ", "", $str);
    $str = str_replace("\"", "", $str);
    return $str;
}

function fsnmpwalkoid($host, $community, $mib) {
    $str = snmpwalkoid($host, $community, $mib);
    $str = str_replace("STRING: ", "", $str);
    $str = str_replace("COUNTER32: ", "", $str);
    $str = str_replace("GAUGE32: ", "", $str);
    $str = str_replace("INTEGER: ", "", $str);
    $str = str_replace("HEX: ", "", $str);
    $str = str_replace("\"", "", $str);
    return $str;
}

$host = $GLOBALS["host"];
$community = $GLOBALS["community"];

$time = date("U");
#
# Get Description, Location and Name from AP
$systemDescription = fsnmpget($host, $community, "system.sysDescr.0");
$systemLocation = fsnmpget($host, $community, "system.sysLocation.0");
$systemName = fsnmpget($host, $community, "system.sysName.0");
$strength = fsnmpwalkoid($host, $community, ".1.3.6.1.4.1.14988.1.1.1.2.1.3");
$interfaces = fsnmpwalkoid($host, $community, ".1.3.6.1.2.1.2.2.1.2");

array_walk($strength, 'signal_strength');

function dec2hex($value) {
    return str_replace(" ", "0", sprintf("%2X", $value));
}

function format_mac($key, $num = 3) {
    $mac_parse = str_replace("SNMPv2-SMI::enterprises.14988.1.1.1.2.1.$num.", "", $key);
    $mac_decimal = substr($mac_parse, 0, strlen($mac_parse)-2);
    list($first, $second, $third, $fourth, $fifth, $sixth) = split("[:.-]", $mac_decimal);
    return dec2hex($first).":".dec2hex($second).":".dec2hex($third).":".dec2hex($fourth).":".dec2hex($fifth).":".dec2hex($sixth);
}

function get_interface($key, $num = 3) {
    $mac_parse = str_replace("SNMPv2-SMI::enterprises.14988.1.1.1.2.1.$num.", "", $key);
    $mac_decimal = substr($mac_parse, 0, strlen($mac_parse));
    list($first, $second, $third, $fourth, $fifth, $sixth, $int) = split("[:.-]", $mac_decimal);
    return "$int";
}

function flipmac($mac) {
    return hexdec(substr($mac, 0, 2)).".".hexdec(substr($mac, 2, 2)).".".hexdec(substr($mac, 4, 2)).".".hexdec(substr($mac, 6, 2)).".".hexdec(substr($mac, 8, 2)).".".hexdec(substr($mac, 10, 2));
}

function signal_strength($value, $key) {
    global $host, $community, $time, $interfaces;

    $mac = format_mac($key);
    $interfacenum = get_interface($key);
    $interfacename = $interfaces["IF-MIB::ifDescr.".$interfacenum];
    echo $interfaces[0];
    $signal = $value." dBm";
        $macfind = str_replace(":", "", $mac);

?>
<? echo $mac; ?>,<? echo $signal; ?>,<? echo $time; ?>,<? echo $interfacename; ?>

<?
}
?>

Re: snmp php a signál

Napsal: 11 Aug 2009 18:39
od okoun
tak to funguje, ale byl bych rad kdyby slo vypsat pouze urcitou MAC nebo iface

Re: snmp php a signál

Napsal: 11 Aug 2009 20:26
od Ajfel
okoun píše:tak to funguje, ale byl bych rad kdyby slo vypsat pouze urcitou MAC nebo iface

hmmm, tak to samozrejme potrebujes znat MAC adresu ale predem, pokud ji znas, neni problem ji prevest do decimalni soustavy z hexa a pak uz si to doplnis do OID cisla, ktere doplnis za vyse uvedene OID cisla a mas pozadovanou MAC a jeji signal.

Re: snmp php a signál

Napsal: 11 Aug 2009 21:33
od okoun
muzes prosim uvest nejaky priklad napr mac: 00:0C:42:31:AE:64

Re: snmp php a signál

Napsal: 11 Aug 2009 21:54
od Ajfel
okoun píše:muzes prosim uvest nejaky priklad napr mac: 00:0C:42:31:AE:64


00 ...... 0
0C ...... 12
42 ...... 66
31 ...... 49
AE ...... 174
64 ...... 100

a doplnis takto(co doplnis je cervene):
$mac = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.1.0.12.66.49.174.100");
$signal = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3.0.12.66.49.174.100");

Re: snmp php a signál

Napsal: 13 Aug 2009 13:03
od LaCosta
Prevodnik ...

Kód: Vybrat vše

echo chr(hexdec($hex));
echo dechex(ord($ascii));

Re: snmp php a signál

Napsal: 01 Dec 2009 17:20
od okoun
stále mi to nefunguje

tyto řádky mám vložit přesně kam? : $mac = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.1.0.12.66.49.174.100");
$signal = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3.0.12.66.49.174.100");

Re: snmp php a signál

Napsal: 01 Dec 2009 20:44
od Ajfel
okoun píše:stále mi to nefunguje

tyto řádky mám vložit přesně kam? : $mac = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.1.0.12.66.49.174.100");
$signal = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3.0.12.66.49.174.100");

a kam jsi je daval ?

Re: snmp php a signál

Napsal: 01 Dec 2009 21:28
od ef
Nechci nic namítat tomuto způsobu získávání grafů. Ale proč to dělat vše ručně. Existuje nástroj rosinfo, stačí mít funkční PC s apachem html php a rrdtool 1.2. Do konfigurace napíšeš routery které chceš přidat a pokud připojíš nového klienta samo si ho to přidá. V cronu zadán co 5 min php skript a jelo to. Z definovaných mikrotiků to ukládá zatížení CPU a ping na něj. Je tam něco i spřenesenými daty ale to už nevím co to přesně bylo. Používal jsem verzi 1.2 pozdější verze používali i databázi kde jednotlivé routery byly v ní a ne v souboru jako předtím. Pěkná věcička která sama fungovala. Teď již nepoužívám, ISP Admin to dělá taky naco mít dva nástroje co dělaj to samé. V ISP Adminu je i více detailů.

http://www.ispforum.cz/viewtopic.php?f= ... o&start=45