static function discoverDatabase() { $ip = UPnP_Client::discoverIps('urn:schemas-mythtv-org:device:MasterMediaServer:1', 1); $info = file_get_contents("http://{$ip}/Myth/GetConnectionInfo?Pin="); preg_match('/<Database><Host>(.*)<\\/Host><Port>(.*)<\\/Port><UserName>(.*)<\\/UserName><Password>(.*)<\\/Password><Name>(.*)<\\/Name><Type>.*<\\/Type><\\/Database>/', $info, $matches); return array('host' => $matches[1], 'port' => $matches[2], 'user' => $matches[3], 'pass' => $matches[4], 'name' => $matches[5]); }
static function discoverDatabase() { $ip = UPnP_Client::discoverIps('urn:schemas-mythtv-org:device:MasterMediaServer:1', 1); $info = @file_get_contents("http://{$ip}/Myth/GetConnectionInfo?Pin="); if (!$info) { return false; } if (class_exists('SimpleXMLElement')) { $data = new SimpleXMLElement($info); return array('host' => (string) $data->Database->Host[0], 'port' => (string) $data->Database->Port[0], 'user' => (string) $data->Database->UserName[0], 'pass' => (string) $data->Database->Password[0], 'name' => (string) $data->Database->Name[0]); } preg_match('/<Database><Host>(.*)<\\/Host><Port>(.*)<\\/Port><UserName>(.*)<\\/UserName><Password>(.*)<\\/Password><Name>(.*)<\\/Name><Type>.*<\\/Type><\\/Database>/', $info, $matches); return array('host' => $matches[1], 'port' => $matches[2], 'user' => $matches[3], 'pass' => $matches[4], 'name' => $matches[5]); }
<?php include 'classes/UPnP/Client.php'; var_dump(UPnP_Client::discoverDatabase('urn:schemas-mythtv-org:device:MasterMediaServer:1'));
require_once 'classes/Database/Query/mysqlicompat.php'; /** * All database connections should now go through this object. * * @global Database $GLOBALS['db'] * @name $db /**/ global $db; // Connect to the database if (!is_object($db)) { if (isset($_SERVER['db_name']) && isset($_SERVER['db_login']) && isset($_SERVER['db_password']) && isset($_SERVER['db_server'])) { $db = Database::connect($_SERVER['db_name'], $_SERVER['db_login'], $_SERVER['db_password'], $_SERVER['db_server'], NULL, 'mysql'); } else { if (!isset($_SESSION['upnp_db'])) { for ($i = 0; $i < 10; $i++) { $info = UPnP_Client::discoverDatabase(); if ($info) { $_SESSION['upnp_db'] = $info; break; } } } if (!isset($_SESSION['upnp_db'])) { custom_error("UPnP Database Discovery failed!"); } $db = Database::connect($_SESSION['upnp_db']['name'], $_SESSION['upnp_db']['user'], $_SESSION['upnp_db']['pass'], $_SESSION['upnp_db']['host'], NULL, 'mysql'); } if (!is_object($db)) { custom_error("Database connection is not valid!"); } $db->register_global_name('db');