perl xml etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
perl xml etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Eylül 2016 Çarşamba

Nokia (Alcatel-Lucent) 5620 SAM sistemine XML API arayüzünden istek gönderen perl script

Merhaba,

Nokia 5620 SAM ağ yönetim sistemine XML API kullanarak dışarından bağlanmak ve çeşitli işler yaptırmak mümkündür. Bu arayüz ile diğer yönetim sistemleri SAM ile konuşabilir ayrıca geliştirilen scriptler ile cihazlar kongiure edilebilir, raporlama yapılabilir ve network yönetilebilir.

Altta bahsedilen konuları bu yolla yapmak oldukça kolaydır.

- SAM üzerinde olan herhangi bir ağ cihazında istenilen konfigurasyonu yapmak.
- Cihazlarla ilgili detaylı bilgileri raporlamak.
- Envanter raporları oluşturmak.
- Çeşitli senaryolara uygun konfigurasyon işlemleri yapmak.
- Servis tanımlamaları ve konfigurasyonları yapmak.
- Servis raporlamaları oluşturmak.
-
.
.
.

Göndermek istediğiniz XML il alttaki perl scripti içinde <SOAP:Body></SOAP:Body>
tagleri arasına yerleştirmeniz yeterlidir.

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent 6.0;
my $usrAgent = LWP::UserAgent->new();
$usrAgent->timeout("120");
my $msg_to_send=
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
<SOAP:Header>
<header xmlns=\"xmlapi_1.0\">
<security>
<user>SAM User</user>
<password hashed=\"true\">kjhds7843jwe9js9324jhkhı6wejs89ks9</password>
</security>
<requestID>\"MyRequest\"</requestID>
</header>
</SOAP:Header>
<SOAP:Body>
    #Gönderilecek XML bu bölüme yazılacak
 </SOAP:Body>
</SOAP:Envelope>";
my $xrequest = HTTP::Request->new(POST => "http://SAM-IP-Address:8080/xmlapi/invoke");
$xrequest->content($msg_to_send);
$xrequest->content_type("text/xml; charset=utf-8");
my $xresponse = $usrAgent->request($xrequest);
my $Xml = $xresponse->decoded_content;
print "$Xml";




Teşekkürler,
Cem Selmanoğulları

28 Aralık 2014 Pazar

Perl ile XML dosyasından verileri parse edip HTML dosyası oluşturan basit bir script

Merhaba,

Basit bix XML dosyasından verileri alıp HTML dosyası oluşturan bir perl scripti paylaşmak istiyorum.

Öncelikle XML dosyasını alttaki şekilde fooxml.xml dosyası olarak oluşturalım.


  <config logfiles="/var/log/foologs/" debugfile="/tmp/foo.dbg" misc="mytest">
    <server name="ankara" osname="unix" osversion="2.6.5.3">
       <ipaddress>
             <address>10.1.0.101</address>
             <address>10.1.1.102</address>
       </ipaddress>
       <macaddress>
             <address>10:54:E5:12:43:A4:E2:21</address>
             <address>10:54:E5:12:45:A4:A4:41</address>
       </macaddress>
    </server>
    <server name="istanbul" osname="linux" osversion="6.6.5.3">
       <ipaddress>
            <address>10.16.0.105</address>
            <address>10.16.1.106</address>
      </ipaddress>
      <macaddress>
            <address>10:54:E5:12:43:A4:B2:31</address>
            <address>10:54:E5:12:43:E4:6Y:65</address>
      </macaddress>
    </server>
  </config>


Yukarıda gösterile XML dosyasını parse edecek scriptimizi perl ile oluşturacağız. Dosya ismi fooxmlparser.pl ve içeriği alttaki gibi olsun.



#!/usr/bin/perl

###Gerekli XML kutuphaneleri
  use XML::Simple qw(:strict);
  use Data::Dumper;

###XML dosyasini parse edip ekrana bastiralim
  my $config = XMLin("C:\\Otomasyon\\PerlXMLparser\\fooxml.xml", KeyAttr => { server => 'name' }, ForceArray => [ 'server', 'address' ]);

  print "Parse Edilecek XML Ciktisi : \n\**********\n";
  print Dumper($config);
  print "\n*************\n";

  ###Config icinde tanimli degerleri almaniz gerekirse alttakileri kullanabilirsiniz.###
  #print $config->{logdir};
  #print "\n";
  #print $config->{debugfile};
  #print "\n";
  #print $config->{misc};

###HTML dosyasina yazacagimiz degiskenlere atama yapalim

  my $srvankara="ankara";
  my $srvankaraip1 = $config->{server}->{ankara}->{ipaddress}->{address}->[1];
  my $srvankaramac1 = $config->{server}->{ankara}->{macaddress}->{address}->[1];
  my $srvistanbul="istanbul";
  my $srvistanbulip1 = $config->{server}->{istanbul}->{ipaddress}->{address}->[1];
  my $srvistanbulmac1 = $config->{server}->{istanbul}->{macaddress}->{address}->[1];
 
###HTML dosyasina yazacagimiz degiskenleri ayrica ekrana bastiralim
  print "Server : ANKARA\n\n";
  print "IP Address 1: ";
  print $config->{server}->{ankara}->{ipaddress}->{address}->[1];
  print "\n\n";
  print "MAC Address 1: ";
  print $config->{server}->{ankara}->{macaddress}->{address}->[1];
  print "\n";

  print "Server : ISTANBUL\n\n";
  print "IP Address 1: ";
  print $config->{server}->{istanbul}->{ipaddress}->{address}->[1];
  print "\n\n";
  print "MAC Address 1: ";
  print $config->{server}->{istanbul}->{macaddress}->{address}->[1];
  print "\n\n\n";
 
###HTML dosya içeriğini oluşturalım
  print "HTML Ciktisi : \n\n";
  print "<html>\n\n<meta>\n<title>XML Ciktisi</title>\n</meta>\n\n<body>\n\n<table>";
  print "\n<tr><td>".$srvankara."</td></tr>";
  print "\n<tr><td>".$srvankaraip1."</td></tr>";
  print "\n<tr><td>".$srvankaramac1."</td></tr>";
  print "\n<tr><td>".$srvistanbul."</td></tr>";
  print "\n<tr><td>".$srvistanbulip1."</td></tr>";
  print "\n<tr><td>".$srvistanbulmac1."</td></tr>\n</table>\n\n</body>\n</html>";