❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz
snmp php a signál
snmp php a signál
ahoj, zkoušel někdo pomocí snmp v php zobrazit signál na kartě ?
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
okoun píše:ahoj, zkoušel někdo pomocí snmp v php zobrazit signál na kartě ?
A ty jsi to zkoušel?
0 x
něco jsem študoval na mikrotik wiki ale nějak to nechodilo 

0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
jo zkoušel, je tu na to software kterej to vytahne pomocí snmp. Jak se to menuje no.
/interface wireless registration-table print oid
/interface wireless registration-table print oid
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků
high speed routery podle požadavků
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
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
$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);
$signal = snmpwalk($ip, "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3");
print_r($mac);
print_r($signal);
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků
high speed routery podle požadavků
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; ?>
<?
}
?>
0 x
tak to funguje, ale byl bych rad kdyby slo vypsat pouze urcitou MAC nebo iface
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
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.
0 x
muzes prosim uvest nejaky priklad napr mac: 00:0C:42:31:AE:64
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
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");
0 x
Prevodnik ...
Kód: Vybrat vše
echo chr(hexdec($hex));
echo dechex(ord($ascii));
0 x
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");
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");
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...
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 ?
0 x
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
http://www.ispforum.cz/viewtopic.php?f= ... o&start=45
0 x