* @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\(([^)]+)\)