Selasa, 08 April 2008

SNMP PHP

This small example is a PHP script, that uses SNMP to read signal strength values from wireless registration table and publish on web page. This example can be quickly transformed to read other values available for SNMP. To use scripts you need Mikrotik RouterOS, tested for version 2.9.xx (not yet for 3.0), PHP version 4 or 5, Web server (Apache, IIS). Configure Apache, and PHP only thing that needs attention is enabled snmp extension for PHP. In Windows in php.ini section Windows Extensions uncomment line
extension=php_snmp.dll .

Enable snmp on Mikrotik, and if needed, unblock UDP port 161. Copy scripts to WEB folder. Open index.php find line
$ip="hostname"; //Change IP to your host names, address
$mask_mac=false; //Use to mask MAC adress (true / false );

Replace hostname with IP address of Mikrotik, if you don’t want to see complete MAC address change false to true and now open the page in browser. You now see MAC address and signal strength. Page is auto refreshed every 10 seconds and reads values from SNMP.

The PHP code, to be saved as a .php file:

// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>












$ip="hostname or IP"; //Change IP to your host names, address
$mask_mac=false; //Use to mask MAC adress (true / false );


$tx_bytes_snmp = snmpwalkoid("$ip", "public", ".1.3.6.1.4.1.14988.1.1.1.2.1.3");

if (is_array($tx_bytes_snmp�

while (list($indexOID,$rssi)= each($tx_bytes_snmp�
{
$oidarray=explode(".",$indexOID);
$end_num=count($oidarray);
$mac="";

for ($counter=2;$counter<8;$counter++)
{
$temp=dechex($oidarray[$end_num-$counter]);
if ($oidarray[$end_num-$counter]<16)
$temp="0".$temp;

if �counter <5) and $mask_mac)
$mac=":"."xx".$mac;
else
if ($counter==7)
$mac=$temp.$mac;
else
$mac=":".$temp.$mac;
}


$mac_oiu = substr(str_replace(":","-",$mac),0,8);
$mac=strtoupper($mac);
?>



}
else
{
?>

}
?>

Mikrotik signal list
MAC Signal
strenght(dBm)
Please check SNMP settings and IP address


Tidak ada komentar: