Java 用udp方式像第三方系统推送数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package com.bonc.utils; import org.graylog2.syslog4j.Syslog; import org.graylog2.syslog4j.SyslogIF; import org.graylog2.syslog4j.impl.net.udp.UDPNetSyslogConfig; import java.net.URLDecoder; import java.text.SimpleDateFormat; import java.util.Date; public class SysLogUtil { public static void sendLog(String host, int port, String log, int level) { UDPNetSyslogConfig config = new UDPNetSyslogConfig(); //设置syslog服务器端地址 config.setHost(host); //设置syslog接收端口,默认514 config.setPort(port); try { //向多个多个ip发送日志不执行shutdo会导致同一个实例无法发送到多个地址 Syslog.shutdown(); SyslogIF syslog = Syslog.createInstance( "udp" , config); syslog.log( 0 , URLDecoder.decode(log, "utf-8" )); } catch (Exception e) { System.out.println( "generate log get exception = " + e.getMessage()); } System.out.println( "syslog Server host:" + host + " ,port:" + port + " ,log:" + log); } public static String makeLog(String srcHost, String srcPort, String dstHost, String dstPort,String operation, String content, String loginId){ //准备发送内容 SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); String dateNowStr = sdf.format( new Date()); StringBuilder msgStr = new StringBuilder(); msgStr.append( " class=\"DSJHJ\"" ); msgStr.append( " type=\"3\"" ); msgStr.append( " time=\"" + dateNowStr + "\"" ); msgStr.append( " src_ip=\"" + srcHost + "\"" ); msgStr.append( " dst_ip=\"" + dstHost + "\"" ); msgStr.append( " src_port=\"" + srcPort + "\"" ); msgStr.append( " dst_port=\"" + dstPort + "\"" ); msgStr.append( " src_mac=\"\"" ); msgStr.append( " dst_mac=\"\"" ); msgStr.append( " protocol=\"\"" ); msgStr.append( " start_time=\"\"" ); msgStr.append( " end_time=\"\"" ); msgStr.append( " primary_user=\"\"" ); msgStr.append( " secondary_user=\"" +loginId+ "\"" ); msgStr.append( "Operation=\"" +operation+ "\"" ); msgStr.append( "Content=\"" +content+ "\"" ); msgStr.append( " dev_ip=\"133.64.102.231\"" ); msgStr.append( " dev_port=\"\"" ); msgStr.append( " dev_mac=\"\"" ); msgStr.append( " authen_status=\"\"" ); msgStr.append( " log_level=\"2\"" ); msgStr.append( " session_id=\"\"" ); msgStr.append( " param_len=\"\"" ); msgStr.append( " Param=\"\"" ); return msgStr.toString(); } public static void main(String[] args) { String srcHost = "133.64.102.231" ; String srcPort = "8081" ; String dstHost = "192.168.1.200" ; String dstPort = "514" ; String operDes = "登录" ; String contentStr = "登录大数据汇聚平台" ; String loginId = "zhaofengchao" ; String msgStr = SysLogUtil.makeLog(srcHost,srcPort,dstHost,dstPort,operDes,contentStr,loginId); //向4A开始发送日志内容 SysLogUtil.sendLog( "133.65.243.94" , 5140 ,msgStr, 0 ); /*dstHost = "192.168.1.215"; dstPort = "5140"; msgStr = SysLogUtil2.makeLog(srcHost,srcPort,dstHost,dstPort,operDes,contentStr,loginId); SysLogUtil2.sendLog("192.168.1.215",5140,msgStr,0);*/ } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!