加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

利用SNMP4J编写 snmp trap的接收程序实现短信报警

(2011-04-28 00:31:03)
标签:

杂谈

分类: Snmp4J
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. import org.snmp4j.CommandResponder;
  6. import org.snmp4j.CommandResponderEvent;
  7. import org.snmp4j.PDU;
  8. import org.snmp4j.Snmp;
  9. import org.snmp4j.TransportMapping;
  10. import org.snmp4j.smi.UdpAddress;
  11. import org.snmp4j.transport.DefaultUdpTransportMapping;
  12. import org.jsmsengine.*;
  13. public class TrapTest{
  14.     public static void main(String[] args){
  15.         
  16.         try{
  17.             //snmp4j通过transportmapping的监听端口接收SNMP信息,所以这里初始化一个
  18.                 //transportmapping,
  19.             //注明本机的IP地址及接收trap的端口.
  20.             TransportMapping transport new DefaultUdpTransportMapping(new UdpAddress("192.168.10.2/162"));
  21.             //创建一个处理消息的snmp实例
  22.             Snmp snmp new Snmp(transport);
  23.             //CommandResponder是一个listener,用以处理获取的trap消息
  24.             CommandResponder trapPrinter new CommandResponder(){
  25.                 public synchronized void processPdu(CommandResponderEvent e){
  26.                     PDU command e.getPDU();
  27.                     if(command!=null){
  28.                         //这里示例输出trap的内容.具体的trap解析等工作在这里进行.
  29.                         System.out.println(command.toString());
  30.                       
  31.                         sendmesg(command.toString());
  32.                         try{
  33.                          DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
  34.                           try{
  35.                               Class.forName("oracle.jdbc.driver.OracleDriver");
  36.                             }catch(Exception e3){
  37.                               System.out.println("No Driver!");
  38.                             }
  39.                             String url "jdbc:oracle:thin:@local:1521:date";
  40.                             String userName "user;
  41.                             String password "pass";
  42.                             Connection conn =DriverManager.getConnection (url, userName, password);
  43.                             // Create Statement
  44.                             Statement stmt conn.createStatement ();
  45.                            // Select the ENAME column from the EMP table
  46.                         
  47.                             
  48.                           }catch(Exception e2)
  49.                         {
  50.                             System.out.println(e2);
  51.                         
  52.                     }
  53.                 }
  54.             };
  55.             
  56.             //在snmp实例中添加CommandResponder listener
  57.             snmp.addCommandResponder(trapPrinter);
  58.         
  59.             System.out.println("start listening!");
  60.             //开始启动trap监听.listen()方法内部启动了一个线程,这个线程监听发送到transport中定义的端口
  61.                 //的消息.
  62.             transport.listen();
  63.             System.out.println(transport.isListening());//测试监听是否正常
  64.             
  65.             //等待一段测试时间,在这段时间可以发送trap信息测试.
  66.             Thread.sleep(180000);
  67.         catch (Exception e) {
  68.             e.printStackTrace();
  69.         }
  70.     }
  71.     public static  void sendmesg(String meesage)
  72.     {
  73.         
  74.         CService srv new CService("COM3"9600"Nokia""6310i");
  75.         System.out.println();
  76.         System.out.println("SendMessage(): sample application.");
  77.         System.out.println( Using " srv._name " srv._version);
  78.         System.out.println();
  79.         try
  80.         {
  81.              
  82.             srv.setSimPin("0000");
  83.             srv.connect();
  84.             srv.setSmscNumber("");
  85.             System.out.println("Mobile Device Information: ");
  86.             System.out.println(   Manufacturer  " srv.getDeviceInfo().getManufacturer());
  87.             System.out.println(   Model         " srv.getDeviceInfo().getModel());
  88.             System.out.println(   Serial No     " srv.getDeviceInfo().getSerialNo());
  89.             System.out.println(   IMSI          " srv.getDeviceInfo().getImsi());
  90.             System.out.println(   S/W Version   " srv.getDeviceInfo().getSwVersion());
  91.             System.out.println(   Battery Level " srv.getDeviceInfo().getBatteryLevel() "%");
  92.             System.out.println(   Signal Level  " srv.getDeviceInfo().getSignalLevel() "%");
  93.             
  94.             try{
  95.                  DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
  96.                   try{
  97.                       Class.forName("oracle.jdbc.driver.OracleDriver");
  98.                     }catch(Exception e){
  99.                       System.out.println("No Driver!");
  100.                     }
  101.                     String url "jdbc:oracle:thin:@loacl:1521:data";
  102.                     String userName "user";
  103.                     String password "pass";
  104.                     Connection conn =DriverManager.getConnection (url, userName, password);
  105.                     // Create Statement
  106.                     Statement stmt conn.createStatement ();
  107.                    // Select the ENAME column from the EMP table
  108.                     ResultSet rset stmt.executeQuery ("select from WARNING");
  109.                     // Iterate through the result and print the employee names
  110.                     String number=null;
  111.                     while(rset.next())
  112.                       
  113.                     number=rset.getString("WARTEL");
  114.                     
  115.                     COutgoingMessage msg new COutgoingMessage(number,meesage");
  116.                     msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_7BIT);
  117.                     msg.setSourcePort(15000);
  118.                     msg.setDestinationPort(16000);
  119.                     srv.sendMessage(msg);
  120.                     srv.disconnect();
  121.                     }
  122.                    
  123.                     rset.clearWarnings();
  124.                     rset.close();
  125.                     stmt.clearWarnings();
  126.                     stmt.close();
  127.                     conn.clearWarnings();
  128.                     conn.close();
  129.             }catch(Exception e2)
  130.             {
  131.                 System.out.println(e2);
  132.             
  133.         }
  134.         catch (Exception e)
  135.         {
  136.             e.printStackTrace();
  137.         }
  138.         System.exit(0);
  139.     }
  140. }
  141. 转自:http://blog.csdn.net/qwldcl/archive/2008/12/12/3502551.aspx

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有