我需要从Cisco Unified Call Manager中检索手机的IP地址列表,我希望能够尽可能地使用Perl和标准模块.
我可以使用snmpwalk获取地址(我们使用的是SNMP v3),但出于某种原因,当我使用现有代码尝试通过SNMP或Net :: SNMP执行相同操作时,我得到的最多的是一个IP地址.我似乎无法让任何一个人给我完整的清单.
这是我的snmpwalk命令:
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
Run Code Online (Sandbox Code Playgroud)
我也得到了电话描述字段(156.1.2.1.1.4)并将这两个字段合并到一个文本文件中,这样我就可以使用它们使用LWP查询电话本身.
能够将这两个功能组合到一个脚本中以获取IP地址并查询手机的特定细节将会很棒.
有没有人有这样做的代码?
编辑:
snmpwalk返回(一大堆这些):
SNMPv2-SMI::enterprises.9.9.156.1.2.1.1.6.100 = IpAddress: xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)
我的Perl代码返回一个IP地址(我必须重新键入它,因为它在没有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 …Run Code Online (Sandbox Code Playgroud) 我想对CUCM DB进行SQL查询.我使用Maven jaxb2插件从WSDL生成Java类,但Cisco AXL docs建议使用wsdl2java.我有很多带有Req/Res结尾的Java类(据我所知,请求和响应).这是我的代码:
public class CUCMDatabaseConnector extends WebServiceGatewaySupport{
private String SOAP_ACTION = "CUCM:DB ver=10.5";
public void updateData(){
String END_USERS_REQUEST = REQUEST,
AXLurl = "https://" + properties.getCurrentCUCM_IP() + ":8443/axl/";
ExecuteSQLQueryReq sqlRequest = new ExecuteSQLQueryReq();
sqlRequest.setSql(END_USERS_REQUEST);
WebServiceTemplate template = getWebServiceTemplate();
template.setMessageSender(NullHostnameVerifier.getMessageSender());
ExecuteSQLQueryRes sqlResponse = (ExecuteSQLQueryRes) template
.marshalSendAndReceive(
AXLurl,
sqlRequest,
new WebServiceMessageCallback() {
@Override
public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException {
TransportContext context = TransportContextHolder.getTransportContext();
HttpUrlConnection connection = (HttpUrlConnection) context.getConnection();
//adding required headers
connection.addRequestHeader( "SOAPAction", SOAP_ACTION);
connection.addRequestHeader("Authorization", autenString);
}
} …Run Code Online (Sandbox Code Playgroud)