2015-04-21 16 views
6

Tôi cần truy xuất danh sách địa chỉ IP của điện thoại từ Trình quản lý cuộc gọi hợp nhất của Cisco và tôi muốn có thể thực hiện bằng cách sử dụng mô-đun Perl và mô-đun chuẩn càng tốt.Sử dụng Perl để lấy danh sách địa chỉ IP từ Cisco Call Manager

tôi có thể có được các địa chỉ sử dụng snmpwalk (chúng tôi đang sử dụng SNMP v3) nhưng vì một lý do khi tôi sử dụng mã hiện có để cố gắng làm điều tương tự thông qua SNMP hoặc Net :: SNMP, công nhất mà tôi nhận được là một địa chỉ IP . Tôi không thể có được một trong hai để cung cấp cho tôi danh sách đầy đủ.

Đây là lệnh snmpwalk tôi:

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 

Tôi cũng nhận được lĩnh vực điện thoại Mô tả (156.1.2.1.1.4) và sáp nhập hai lĩnh vực vào một tập tin văn bản để tôi có thể sử dụng chúng để truy vấn điện thoại tự sử dụng LWP.

Thật tuyệt vời khi có thể kết hợp hai chức năng này thành một tập lệnh để nhận địa chỉ IP và truy vấn điện thoại để biết chi tiết cụ thể của nó.

Có ai có mã thực hiện việc này không?

Edit:

snmpwalk lợi nhuận (một bó toàn bộ những):

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

My Perl trả về một địa chỉ IP (Tôi cần phải nhập lại nó vì nó trên mạng khép kín mà không Truy cập Internet):

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

hãy [sửa] câu hỏi của bạn để hiển thị 'SNMP.pm' hoặc 'đang Net :: SNMP' bạn đã viết rằng chỉ trả về một địa chỉ IP. Cũng hiển thị kết quả của 'snmpwalk' và đầu ra của tập lệnh của bạn. Trong tò mò, các bài đăng Stack Overflow có các liên kết bị hỏng là gì? Sẽ tốt hơn nếu chúng ta có thể sửa chữa chúng. – ThisSuitIsBlackNot

+0

Một trong những bài đăng tôi tìm thấy là bài đăng này: http://stackoverflow.com/questions/100620/how-do-i-get-the-mac-address-or-ipaddress-from-a-cisco-callmanager/2184270 # 2184270 – user141715

+3

Bài đăng gốc đã được chỉnh sửa với mã và kết quả snmpwalk – user141715

Trả lời

0

Bạn có thể thực hiện việc này với curl và gửi XML để truy vấn risdb vì chỉ những điện thoại đã đăng ký mới có IP địa chỉ:

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 

Xem:

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> 
Các vấn đề liên quan