#!/usr/bin/perl -w use strict; use XML::LibXML; use Cwd; use LWP::UserAgent; use URI::Escape; #-------- Parameter --------# my $strLine; my $strWorkingDir = cwd; my $strLogger = '/var/log/wowzaGrabber.log'; my $strType = "Customer"; my $strStreamorCustomerElement = "ConnectionsCurrent"; my $strKundeorStream = $ARGV[0]; my $strServerIp_1 = $ARGV[1]; my $strServerIp_2 = $ARGV[2]; #my $strServerIp_3 = $ARGV[3]; #my $strServerIp_4 = $ARGV[4]; #my $strServerIp_5 = $ARGV[5]; #my $strServerIp_6 = $ARGV[6]; #my $strServerIp_7 = $ARGV[7]; #my $strServerIp_8 = $ARGV[8]; #my $strServerIp_9 = $ARGV[9]; #my $strServerIp_10 = $ARGV[10]; #-------- Server IPs in Array schreiben ------# my @IPs = ( $strServerIp_1, $strServerIp_2, # $strServerIp_3, # $strServerIp_4, # $strServerIp_5, # $strServerIp_6, # $strServerIp_7, # $strServerIp_8, # $strServerIp_9, # $strServerIp_10 ); #--- Parser ----------------------------------# my $xmlParser = XML::LibXML->new(); my $httpGet = LWP::UserAgent->new; foreach my $strItem(@IPs) { #my $xmlParser = XML::LibXML->new(); #my $httpGet = LWP::UserAgent->new; my $strUrl = "http://$strItem:8086/connectioncounts.xml"; my $strTempFile = "/tmp/wowza$strItem.xml"; #-Get Datasource---------------------------------------------------------# $httpGet->agent('ReportsBot/1.01'); $httpGet->credentials( "$strItem:port", 'Wowza Media Systems', 'user' => 'passwort' ); my $response = $httpGet->get($strUrl); #-Write Tempfile----------------------------------------------------------# open FILE, ">/tmp/wowza$strItem.xml" ; print FILE ($response->decoded_content); close FILE; #-MAIN-------------------------------------------------------------------# #my $output = parseXml($strKundeorStream,$strStreamorCustomerElement,$strType); print parseXml($strKundeorStream,$strStreamorCustomerElement,$strType); sub parseXml { my($strKundeorStream,$strStreamorCustomerElement,$strType) = @_; my $xmlStruct = $xmlParser -> parse_file($strTempFile)or die; my $xmlRootElement = $xmlStruct -> getDocumentElement(); my $xmlRootElementName = $xmlRootElement -> getName(); my @arrNodes; my $strLine = ""; my @arrElement = $xmlRootElement->getElementsByTagName("Application"); foreach my $strChild (@arrElement) { @arrNodes = $strChild->getElementsByTagName("Name"); if ($arrNodes[0]->getFirstChild->getData eq $strKundeorStream) { @arrNodes = $strChild->getElementsByTagName($strStreamorCustomerElement); $strLine .= $arrNodes[0]->getFirstChild->getData; return $strLine; print $strLine ; } } } }