From b538fcadebc819d070f7d1defc8957da101a707a Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 11 Nov 2010 20:15:38 +0100 Subject: [PATCH] import code --- functions.php | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++ munin.php | 71 +++++++++++++++++++++++++++ reboot.php | 23 +++++++++ status.php | 24 +++++++++ 4 files changed, 250 insertions(+) create mode 100644 functions.php create mode 100755 munin.php create mode 100644 reboot.php create mode 100644 status.php diff --git a/functions.php b/functions.php new file mode 100644 index 0000000..fa4693f --- /dev/null +++ b/functions.php @@ -0,0 +1,132 @@ + +* @license AGPL v3 +* @link http://cweiske.de/linksys-wrt3g-tools.htm +*/ +require_once 'HTTP/Request2.php'; + + +class Wrt3g +{ + protected static $arTranslations = array( + 'GPRS_MSG.WWBEAR' => 'type', + 'GPRS_MSG.NNAME' => 'network', + 'GPRS_MSG.STRENGTH' => 'signal strength', + 'GPRS_MSG.ACQUIRING' => 'aquiring', + 'GPRS_MSG.WWBEAR_GPRS' => 'GPRS', + 'GPRS_MSG.WWBEAR_UMTS' => 'UMTS', + ); + + /** + * Reboots the router. + * + * @return HTTP_Request2_Response + * + * @throws Exception When the router can't be reached, or unauthorized + */ + function reboot() + { + $r = new HTTP_Request2(); + $r->setMethod(HTTP_Request2::METHOD_POST); + $r->setUrl( + 'http://' + . $GLOBALS['linksys-wrt3g-tools']['user'] + . ':' . $GLOBALS['linksys-wrt3g-tools']['password'] + . '@' . $GLOBALS['linksys-wrt3g-tools']['ip'] + . '/apply.cgi' + ); + $r->addPostParameter('action', 'Reboot'); + $r->addPostParameter('submit_button', 'Diagnostics'); + $r->addPostParameter('wait_time', 1); + + $resp = $r->send(); + return $resp; + }//function reboot() + + + + /** + * Retrieves status information about the router + * + * @return array Array with several key-value pairs + * connection => connecting, disconnected, connected + * + * @throws Exception When the router can't be reached, or unauthorized + */ + function getStatus() + { + $arRetval = array(); + + $strUrlBase = 'http://' + . $GLOBALS['linksys-wrt3g-tools']['user'] + . ':' . $GLOBALS['linksys-wrt3g-tools']['password'] + . '@' . $GLOBALS['linksys-wrt3g-tools']['ip']; + + /** + * Connection status + */ + $r = new HTTP_Request2(); + $r->setMethod(HTTP_Request2::METHOD_GET); + $r->setUrl($strUrlBase . '/index_wstatus2.asp'); + $resp = $r->send(); + echo $resp->getStatus() . ' ' . $resp->getReasonPhrase() . "\n"; + $body = $resp->getBody(); + preg_match('/var status2 = "(.+)"/', $body, $arMatches); + + $strStatus = $arMatches[1]; + //Connecting + //Disconnected + //Connected + $arRetval['connection'] = strtolower($strStatus); + + /** + * GPRS/UMTS Status + */ + $r->setUrl($strUrlBase . '/index_wstatus1.asp'); + $resp = $r->send(); + $body = $resp->getBody(); + $arRetval = array_merge($arRetval, $this->parseStatus($body)); + + return $arRetval; + }//function getStatus() + + + + /** + * Parses the body and returns extracted values + * + * @param string $body HTML document to parse + * + * @return array Array of key-value pairs + */ + function parseStatus($body) + { + $arRetval = array(); + $arMatches = array(); + preg_match_all('#>Capture\(([^)]+)\) \ No newline at end of file diff --git a/munin.php b/munin.php new file mode 100755 index 0000000..b645e5c --- /dev/null +++ b/munin.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php + +* @license AGPL v3 +* @link http://cweiske.de/linksys-wrt3g-tools.htm +*/ +require_once dirname(__FILE__) . '/config.php'; +require_once dirname(__FILE__) . '/functions.php'; + +if (isset($argv[1]) && $argv[1] == 'autoconf') { + echo "yes\n"; + exit(); +} else if (isset($argv[1]) && $argv[1] == 'config') { + echo << \ No newline at end of file diff --git a/reboot.php b/reboot.php new file mode 100644 index 0000000..a6c1981 --- /dev/null +++ b/reboot.php @@ -0,0 +1,23 @@ + +* @license AGPL v3 +* @link http://cweiske.de/linksys-wrt3g-tools.htm +*/ +require_once dirname(__FILE__) . '/config.php'; +require_once dirname(__FILE__) . '/functions.php'; + +try { + $w = new Wrt3g(); + $resp = $w->reboot(); + echo $resp->getStatus() . ' ' . $resp->getReasonPhrase() . "\n"; +} catch (Exception $e) { + echo 'Error: ' . $e->getMessage() . "\n"; +} +?> \ No newline at end of file diff --git a/status.php b/status.php new file mode 100644 index 0000000..9adfd02 --- /dev/null +++ b/status.php @@ -0,0 +1,24 @@ + +* @license AGPL v3 +* @link http://cweiske.de/linksys-wrt3g-tools.htm +*/ +require_once dirname(__FILE__) . '/config.php'; +require_once dirname(__FILE__) . '/functions.php'; +try { + $w = new Wrt3g(); + $arStatus = $w->getStatus(); + foreach ($arStatus as $key => $value) { + echo $key . ': ' . $value . "\n"; + } +} catch (Exception $e) { + echo 'Error: ' . $e->getMessage() . "\n"; +} +?> \ No newline at end of file -- 2.30.2