* @license AGPL v3 * @link http://cweiske.de/linksys-wrt3g-tools.htm */ require_once 'HTTP/Request2.php'; require_once 'Wrt3g/HtmlParser.php'; class Wrt3g { /** * Router hostname/IP * * @var string */ public $host; /** * Name of user with administration privileges * * @var string */ public $user; /** * Password for $user * * @var string */ public $password; /** * Returns the base URL to use for requests. * Includes username, password and host. * * @return string URL without trailing slash after the host */ protected function getBaseUrl() { return 'http://' . $this->user . ':' . $this->password . '@' . $this->host; } /** * Reboots the router. * * @return HTTP_Request2_Response * * @throws Exception When the router can't be reached, or unauthorized */ public function reboot() { $r = new HTTP_Request2(); $r->setMethod(HTTP_Request2::METHOD_POST); $r->setUrl( $this->getBaseUrl() . '/apply.cgi' ); $r->addPostParameter('action', 'Reboot'); $r->addPostParameter('submit_button', 'Diagnostics'); $r->addPostParameter('wait_time', 1); $resp = $r->send(); return $resp; }//public 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 */ public function getStatus() { $arRetval = array(); $strUrlBase = $this->getBaseUrl(); $parser = new Wrt3g_HtmlParser(); /** * 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"; $arRetval = $parser->index_wstatus2($resp->getBody()); /** * GPRS/UMTS Status */ $r->setUrl($strUrlBase . '/index_wstatus1.asp'); $resp = $r->send(); $body = $resp->getBody(); $arRetval = array_merge($arRetval, $parser->index_wstatus1($body)); return $arRetval; }//public function getStatus() } ?>