<?php
function dumpDOMnodeList($xml)
{
//USED TO DUMP THE XPATH RESULTS
$docTmp = new DOMDocument();
foreach($xml as $n) $docTmp->appendChild($docTmp->importNode($n,true));
print_r($docTmp->saveHTML());
}
$soapVersion = '1.2';
$soapLocation = 'https://domain.com/soap/status.asmx?WSDL';
$soapContext = stream_context_create(array('ssl' => array('verify_peer' => FALSE)));
$soapParameters = array (
'location' => $soapLocation,
'login' => 'login',
'password' => 'password',
'stream_context' => $soapContext
);
//IPM.WSDL IS A LOCAL COPY OF STATUS.ASMX?WSDL
$soapClient = new SoapClient('ipm.wsdl',$soapParameters);
//GET GROUPS
/*
$soapRequest = '<?xml version="1.0" encoding="utf-8"?> ';
$soapAction = 'http://schemas.ipmonitor.com/ipm70/GetGroups';
*/
//GET MONITORS
/*MAIN GROUP WITHIN IPM, NEVER CHANGES CAN BE OBTAINED BY USING "GetGroups" METHOD...
IT IS THE MAIN gtGroup ID WRAPPING THE RESPONSE*/
$groupID = 'XXXXXXXXXXXX';
$justTrouble = 'TRUE'; // ONLY RETURN DISTRESSED MONITORS
$soapRequest = '<?xml version="1.0" encoding="utf-8"?>'.$groupID.' '.$justTrouble.' ';
$soapAction = 'http://schemas.ipmonitor.com/ipm70/GetMonitors';
$soapResult = $soapClient->__doRequest($soapRequest, $soapLocation, $soapAction, $soapVersion); //REQUEST, LOCATION, ACTION, VERSION
$doc = new DOMDocument();
$doc->LoadXML($soapResult);
$xpath = new DOMXpath($doc);
$xpath->registerNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
$xpath->registerNamespace('def', 'http://schemas.ipmonitor.com/ipm70/');
$alerts = $xpath->query("/soap:Envelope/soap:Body/def:GetMonitorsResponse/def:GetMonitorsResult/def:rtMonitor");
dumpDOMnodeList($alerts);
?>
Wednesday, October 17, 2012
Using The Solarwinds IPmonitor API WSDL Webservice With SOAP And XPATH
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment