2015-04-21 8 views
6

Ich muss eine Liste der IP-Adressen von Telefonen von Cisco Unified Call Manager abrufen, und ich möchte dies auch mit Perl und Standardmodulen tun können wie möglich.Verwenden von Perl, um eine Liste der IP-Adressen von Cisco Call Manager zu erhalten

Ich kann die Adressen mit snmpwalk bekommen (wir verwenden SNMP v3), aber aus irgendeinem Grund, wenn ich bestehenden Code verwende, um das gleiche über SNMP oder Net :: SNMP zu tun, bekomme ich am meisten eine IP-Adresse . Ich kann keinen von beiden dazu bringen, mir die vollständige Liste zu geben.

Hier ist mein snmpwalk Befehl:

snmpwalk -v3 -u <user> -A <password> -l authNoPriv -a SHA <ip address> 1.3.6.1.4.1.9.9.156.1.2.1.1.6 

ich auch das Telefon Feld Beschreibung (156.1.2.1.1.4) und Zusammenführen dieser beiden Felder in eine Textdatei so immer ich kann sie verwenden die abfragen Handys selbst mit LWP.

Es wäre toll, in der Lage zu sein, diese beiden Funktionen in einem Skript zu kombinieren, um die IP-Adresse zu erhalten und das Telefon nach seinen spezifischen Details abzufragen.

Hat jemand Code, der das tut?

Edit:

snmpwalk gibt (eine ganze Reihe von diesen):

SNMPv2-SMI::enterprises.9.9.156.1.2.1.1.6.100 = IpAddress: xxx.xxx.xxx.xxx 

Mein Perl-Code, der eine IP-Adresse zurückgibt (ich habe es erneut eingeben, weil es auf einem geschlossenen Netzwerk ist ohne Internetzugang):

use SNMP; 

my $ccmip = "xxx.xxx.xxx.xxx"; 
my $user = "<username>"; 
my $pass = "<password>"; 

$sess = new SNMP::Session(DestHost => $ccmip, SecName => $user, SecLevel => 'authnoPriv', AuthPass => $pass, AuthProto => 'SHA', PrivProto => 'AES', PrivPass => $pass, Version => 3); 

my $vars = new SNMP::VarList(['1.3.6.1.4.1.9.9.156.1.2.1.1.6']); 
my @values = $sess->getnext($vars); 

my @table =(); 
while ((!$sess->{ErrorStr})) { 
    push(@table, $values[0]); 
    @values = $sess->getnext($vars); 
} 
+0

Bitte [Bearbeiten] Ihre Frage, die 'SNMP.pm' oder' Net :: SNMP' Code, den Sie geschrieben zu zeigen, dass eine IP-Adresse nur zurückgibt. Zeigen Sie auch die Ergebnisse des 'snmpwalk' und die Ausgabe Ihres Skripts. Aus Neugier, was waren die Stack Overflow Posts mit den defekten Links? Es wäre schön, wenn wir das beheben könnten. – ThisSuitIsBlackNot

+0

Einer der Pfosten, die ich fand, ist dieser: http://stackoverflow.com/questions/100620/how-do-i-get-the-mac-address-or-ipaddress-from-a-cisco-callmanager/2184270 # 2184270 – user141715

+3

Der ursprüngliche Post wurde mit dem Code bearbeitet und snmpwalk Ergebnisse – user141715

Antwort

0

Sie können dies mit curl tun und ein XML senden, um das Risdb abzufragen, da nur registrierte Telefone IP haben Adressen:

curl -s -k -u axluser:${AXLPASSWORD} -H 'Content-type: text/xml;' -H 'SOAPAction: "CUCM:DB ver=8.0"' -d @ris_reg.xml https://x.x.x.x:8443/realtimeservice/services/RisPort | xmllint --format - > ris_reg_8.log 

See:

ris_reg.xml:<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> 
    <ns1:SelectCmDevice soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.cisco.com/ast/soap/"> 
     <StateInfo xsi:type="xsd:string"/> 
     <CmSelectionCriteria href="#id0"/> 
    </ns1:SelectCmDevice> 
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:CmSelectionCriteria" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://schemas.cisco.com/ast/soap/"> 
     <MaxReturnedDevices xsi:type="xsd:unsignedInt">0</MaxReturnedDevices> 
     <Class xsi:type="xsd:string">Phone</Class> 
     <Model xsi:type="xsd:unsignedInt">503</Model> 
     <Status xsi:type="xsd:string">Registered</Status> 
     <NodeName xsi:type="xsd:string" xsi:nil="true"/> 
     <SelectBy xsi:type="xsd:string">Name</SelectBy> 
     <SelectItems soapenc:arrayType="ns2:SelectItem[1]" xsi:type="soapenc:Array"> 
     <item href="#id1"/> 
     </SelectItems> 
    </multiRef> 
    <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:SelectItem" xmlns:ns3="http://schemas.cisco.com/ast/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
     <Item xsi:type="xsd:string">*</Item> 
    </multiRef> </soapenv:Body> </soapenv:Envelope> 
Verwandte Themen