⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientxmlparser.java

📁 windows系统下用java开发的网络入侵检测程序
💻 JAVA
字号:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
/**
 * Use DOM parse XML message which transmit between JIDX Client and JIDX Client.
 * 2005.9.1
 * @version 0.1.2
 * @author Daxin Tian
 *
 */
public class ClientXMLParser {
	/**
	 * Message to be parsed.
	 */
    public InputStream in=null;
    /**
     * Server peer send to client peer ask client peer to receive server peer's name--sendmyname_s.
     */
	public boolean sendmyname_b=false;
	/**
	 * Client peer send to server peer ask server peer to receive XML IDMEF file--peername_s,
	 * sendfile_s,filesize_l.
	 */
	public boolean sendfile_b=false;
	/**
	 * Server peer send to client peer tell him whether accept to receive 
	 * the XML IDMEF file and if accept whether receive successfully--acknum_i.
	 */
	public boolean ackfile_b=false;
	//public boolean content_b=false;
	/**
	 * Client peer tell server peer the send file behavior begin,intermited or over--sendbe_i.
	 */
	public boolean sendbe_b=false;
	 /**
     * Server peer tells client peer his/her username. After client peer successfully 
     * connect to the server peer, server peer immediately send this message.<p> 
     *Combined with sendmyname_b.
     */
	public String sendmyname_s=null;
	/**
	 * Tell server peer who send the file.<p>Combined with sendfile_b.
	 */
	public String peername_s=null;
	/**
	 * Tell server peer the XML IDMEF file's name which will be send to him/her.<p>Combined with 
	 * sendfile_b.
	 */
	public String sendfile_s=null;
	/**
	 * Tell server peer the file size.<p>Combined with sendfile_b.
	 */
	public long filesize_l=0;
	//public String content_s=null;	
	/**
	 * Tell client peer whether accept to receive the XML IDMEF file and 
	 * if accept whether receive successfully.
	 * <ul>
	 * <li> >0: accept the request,the number is the port used to receive file
	 * <li>-1: reject the file
	 * <li>-3: prepared to receive the file
	 * <li>0: receive success
	 * <li>-2: receive failed,the server peer stop receive
	 * </ul>
	 * Combined with ackfile_b.
	 */
	public int acknum_i=0;
	/**
	 * Tell server peer the send file behavior begin,intermitted or over.
	 * <ul>
	 * <li>0:Intermitted
	 * <li>1: Begin
	 * <li>2: Over successfully
	 * </ul>
	 */
	public int sendbe_i=0;
	
	public void parser()
	{
		try
		{
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder=factory.newDocumentBuilder();
			Document doc=builder.parse(in);
			doc.normalize();
			NodeList list_msg=doc.getElementsByTagName("msg");
		    //System.out.print(list_msg.getLength());
			if(list_msg.getLength()==1)
			{
				//System.out.println("msg begin");
				
				Element e_msg=(Element)list_msg.item(0);
			
				if(e_msg.getElementsByTagName("send_myname").getLength()>0)
				{
					Element e_sendmyname=(Element)e_msg.getElementsByTagName("send_myname").item(0);
					sendmyname_b=true;
					sendmyname_s=e_sendmyname.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
					
				}
				if(e_msg.getElementsByTagName("send_file").getLength()>0)
				{
					Element e_sendfile=(Element)e_msg.getElementsByTagName("send_file").item(0);
					sendfile_b=true;
					peername_s=e_sendfile.getElementsByTagName("peer_name").item(0).getFirstChild().getNodeValue();
					sendfile_s=e_sendfile.getElementsByTagName("file_name").item(0).getFirstChild().getNodeValue();
					filesize_l=Long.parseLong(e_sendfile.getElementsByTagName("size").item(0).getFirstChild().getNodeValue());
				}
				if(e_msg.getElementsByTagName("ack_file").getLength()>0)
				{
					Element e_ack=(Element)e_msg.getElementsByTagName("ack_file").item(0);
					ackfile_b=true;
					acknum_i=Integer.parseInt(e_ack.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
					
				}
				if(e_msg.getElementsByTagName("send_file_begin_end").getLength()>0)
				{
					Element e_be=(Element)e_msg.getElementsByTagName("send_file_begin_end").item(0);
					sendbe_b=true;
					sendbe_i=Integer.parseInt(e_be.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
					
				}
				/*
				if(e_msg.getElementsByTagName("file_content").getLength()>0)
				{
					Element e_con=(Element)e_msg.getElementsByTagName("file_content").item(0);
					content_b=true;
					content_s=e_con.getElementsByTagName("content").item(0).getFirstChild().getNodeValue();
					
				}
				
				*/
				
			}
		}
		catch(Exception e)
		{
		}
		
	}
}
				
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -