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

📄 display.java

📁 基于linux squid的web管理界面源码,基于开源精神可以开放学习.
💻 JAVA
字号:
package squid;
import java.util.*;
import java.io.*;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DISPLAY {
    private  String fileop=System.getProperty("file.separator");
	private String base;
	private String file;
	private Vector clist;
    private String group;
    private Process process;
	public DISPLAY(){
	
		base=fileop+"usr"+
		fileop+"local"+
		fileop+"squid"+
		fileop+"etc"+
		fileop;
		file="";
		clist=new Vector();
		group="";
		process=null;
	}
	/**
	 * get group where ip belong to
	 * @param ip
	 * @return
	 */
	public String getGIP(String ip){
		String aLine="";
		String[]sub;
		 String[] filetemp={"normal","advance","2normal","3normal"};
		 File fl;
		 try {
			for(int i=0;i<filetemp.length;i++)
			{
				fl=new File(base+filetemp[i]);
			
            FileReader fr = new FileReader(fl);
            BufferedReader br = new BufferedReader(fr);
            
                while ((aLine=br.readLine()) != null ) {
                 sub=aLine.split("/");
                if(sub[0].equals(ip))
                	group=filetemp[i];
                }
                br.close();
                fr.close();
               
                 }
                
		 } catch (FileNotFoundException e) {
            e.printStackTrace(System.out);
            return null;
        } catch (IOException e) {
            e.printStackTrace(System.out);
            return null;
        }
        return group;
        
	}
	/**
	 * 
	 * get a Client list
	 * @param newfile
	 * @return
	 */
	public Vector getCList(String newfile){
		String[] subString,sub;
		String nf=newfile;
		String aLine="";
		try {
			file=base+nf;
			File fl=new File(file);
            FileReader fr = new FileReader(fl);
            BufferedReader br = new BufferedReader(fr);
            
                while ((aLine=br.readLine()) != null) {
                	
                aLine=aLine.trim();
               
                subString=aLine.split(" ",2);
                sub=subString[0].split("/",2);
                subString[1]=subString[1].trim();
                CLIENT client = new CLIENT();
                client.setUser(subString[1]);
                client.setIP(sub[0]);
                client.setGroup(getGIP(sub[0]));
                clist.addElement(client); 
                   }
                br.close();
                fr.close();
                return clist;
        } catch (FileNotFoundException e) {
            e.printStackTrace(System.out);
            return null;
        } catch (IOException e) {
            e.printStackTrace(System.out);
            return null;
        }       
	}
	/**
	 * get some infomation for editing
	 * @param newip
	 * @return
	 */
		
	public CLIENT getEData(String newip){
		String aLine="",user="";
		String[] subString;
		String[] sub;
		String[] pswd;
		String[] gpp={"normal","advance","2normal","3normal"};
		CLIENT client =new CLIENT();
		try {
			file=base+"ip_user.conf";
			File fl=new File(file);
            FileReader fr = new FileReader(fl);
            BufferedReader br = new BufferedReader(fr);
            
                while ((aLine=br.readLine()) != null) {
                aLine=aLine.trim();
                subString=aLine.split(" ",2);
                sub=subString[0].split("/",2);
                subString[1]=subString[1].trim();
                if(sub[0].equals(newip))
                client.setUser(subString[1]);
                user=subString[1];
                client.setIP(newip);
                   }
                br.close();
                fr.close();
            	   for(int i=0;i<gpp.length;i++)
       			{
       			  File	fll=new File(base+gpp[i]);
                   FileReader frr = new FileReader(fll);
                   BufferedReader brr = new BufferedReader(frr);
                       while ((aLine=brr.readLine()) != null ) {
                        sub=aLine.split("/");
                       if(sub[0].equals(newip))
                       	client.setGroup(gpp[i]);
                       }
                       br.close();
                       fr.close();  
                  } 
            	 client.setPasswd("123456");
       
          /*  file=base+"passwd";
            fl=new File(file);
            fr=new FileReader(fl);
            br=new BufferedReader(fr);
        while ((aLine=br.readLine()) != null) {
            aLine=aLine.trim();
           
            pswd=aLine.split(":",2);
            
            if(pswd[0].equals(user))
            {
            	 pswd[1]=getFromBASE64(pswd[1]);
            client.setPasswd(pswd[1]);
            }
               }
            br.close();
            fr.close();*/
		 } catch (FileNotFoundException e) {
	            e.printStackTrace(System.out);
	            return null;
	        } catch (IOException e) {
	            e.printStackTrace(System.out);
	            return null;
	        }
        return client;
	}
	/**
	 * enconde and decode
	 */
	public  String getBASE64(String s){
		if (s == null) return null;
		return (new BASE64Encoder()).encode(s.getBytes());
		} 
	public  String getFromBASE64(String s) {
		if (s == null) return null;
		BASE64Decoder decoder = new BASE64Decoder();
		try {
		byte[] b = decoder.decodeBuffer(s);
		return new String(b);
		} catch (Exception e) {
		return null;
		}
	}
	/**
	 * query data from file
	 * @param arg0 for user
	 * @param arg1 for ip
	 * @return
	 */
	public boolean query(String arg0,String arg1){
		String aLine="";
		String[] subString,sub;
		boolean flag=false;
		String[] newf={"ip_user.conf","advance","normal","2normal","3normal","passwd"};
		try {
			for(int i=0;i<newf.length;i++){
			file=base+newf[i];
			File fl=new File(file);
            FileReader fr = new FileReader(fl);
            BufferedReader br = new BufferedReader(fr);
            
                while ((aLine=br.readLine()) != null) {
                	
                aLine=aLine.trim();
                if(newf.equals("ip_user.conf"))
                {
                	subString=aLine.split(" ",2);                
                sub=subString[0].split("/",2);
                subString[1]=subString[1].trim();
                if(subString[1].equals(arg0)&&sub[0].equals(arg1))
                	flag=true;
                else
                	flag=false;
                }
                if(newf.equals("normal")|| newf.equals("advance")||newf.equals("2normal")||newf.equals("3normal"))
                {
                	sub=aLine.split("/",2);
                	if(sub[0].equals(arg1))
                	flag=true;
                	else
                    	flag=false;
                }
                if(newf.equals("passwd")){
                	subString=aLine.split(":",2);
                	if(subString[0].equals(arg0))
                		flag=true;
                	else
                    	flag=false;
                }
                
                   }
                br.close();
                fr.close();
			}
                
        } catch (FileNotFoundException e) {
            e.printStackTrace(System.out);
            flag=false;
        } catch (IOException e) {
            e.printStackTrace(System.out);
            flag=false;
        }
        return flag;
		
	}
	/**
	 *  update data
	 * @param user
	 * @param pass
	 * @param ip
	 * @param group
	 * @return
	 */
	public boolean update(String user,String pass,String ip,String group,boolean change){
		String[] files={"ip_user.conf","normal","advance","2normal","3normal","passwd"};
		String[] sub,subString;
		String aLine="";
		String file1="";
		//Process process;
		int sw=0;
		if(query(user,ip)==false){
		if(group.equals("normal"))
			sw=1;
		if(group.equals("advance"))
			sw=2;
		if(group.equals("2normal"))
			sw=3;
		if(group.equals("3normal"))
			sw=4;
		try {
			for(int i=0;i<files.length;i++){
			file=base+files[i];
			File fl=new File(file);
            FileReader fr = new FileReader(fl);
            BufferedReader br = new BufferedReader(fr);
           
            file1="/tmp/squid.tmp";
            File flq= new File(file1);
            FileWriter fw = new FileWriter(flq);
            BufferedWriter wr = new BufferedWriter(fw);
           
			
                while ((aLine=br.readLine()) != null) {
                	
                aLine=aLine.trim();
                if(files[i].equals("ip_user.conf")){
                subString=aLine.split(" ",2);
                sub=subString[0].split("/",2);
                subString[1]=subString[1].trim();
                if(subString[1].equals(user)||sub[0].equals(ip))
                {
                	aLine=ip+"/255.255.255.255  "+user;
                }
                }
                if(files[i].equals("normal")||files[i].equals("advance")||
                		files[i].equals("2normal")||files[i].equals("3normal")){
                	switch (sw){
                	case 1:
                	case 2:
                	case 3:
                	case 4:
                	{subString=aLine.split("/",2);
                	if(subString[0].equals(ip))
                		aLine=ip+"/32";
                	 break;
                	}
                	default: break;
                	}
                		
                }                    	
                
                if(files[i].equals("passwd")){
                	subString=aLine.split(":",2);
                	if(subString[0].equals(user))
                	subString[0]=user;
                	aLine=subString[0]+":"+subString[1];
                	if(change==true)
                		process=Runtime.getRuntime().exec("htpasswd -mb /usr/local/squid/etc/passwd"
                				+user+pass); 
                	
                }
                
               wr.write(aLine);
                	
                }
                br.close();
                fr.close();
             String file2="/tmp/squid.tmp";
             FileReader fr2=new FileReader(file2);
             BufferedReader br1=new BufferedReader(fr2);
             String file3=base+files[i];
             FileWriter fw1=new FileWriter(file3);
             BufferedWriter wr1=new BufferedWriter(fw1);
             while((aLine=br1.readLine()) !=null){
            	 aLine=aLine.trim();
            	 wr1.write(aLine);
             }
             br1.close();
             wr1.close();
             
			} 
			
			
        } catch (FileNotFoundException e) {
            e.printStackTrace(System.out);
    
        } catch (IOException e) {
            e.printStackTrace(System.out);
         
        }   
        return true;
		}else
			return false;
		
	}
	public boolean add(String user,String ip,String group,String pass){
		int swi=0;
		if(query(user,ip)==true){
		try{
		 process = Runtime.getRuntime().exec ("htpasswd -mb /usr/local/squid/etc/passwd"+user+pass);
		if(group.equals("normal"))
			swi=1;
		if(group.equals("advance"))
			swi=2;
		if(group.equals("2normal"))
			swi=3;
		if(group.equals("3normal"))
			swi=4;
		switch (swi){
    	case 1:{
    		String ftp=base+"normal";
    		File Ftp=new File(ftp);
    		FileWriter fwrt=new FileWriter(Ftp,true);
    		BufferedWriter bw=new BufferedWriter(fwrt);
    		bw.write(ip+"/32"); 
    		bw.close();
    		fwrt.close();
    		break;
    	}
    	case 2:
    	{
    		String ftp=base+"advance";
    		File Ftp=new File(ftp);
    		FileWriter fwrt=new FileWriter(Ftp,true);
    		BufferedWriter bw=new BufferedWriter(fwrt);
    		bw.write(ip+"/32");
    		bw.close();
    		fwrt.close();
    		break;
    	}
    	case 3:
    		{String ftp=base+"2normal";
    		File Ftp=new File(ftp);
    		FileWriter fwrt=new FileWriter(Ftp,true);
    		BufferedWriter bw=new BufferedWriter(fwrt);
    		bw.write(ip+"/32");
    		bw.close();
    		fwrt.close();
    		}
    	case 4:
    	{
    		String ftp=base+"3normal";
    		File Ftp=new File(ftp);
    		FileWriter fwrt=new FileWriter(Ftp,true);
    		BufferedWriter bw=new BufferedWriter(fwrt);
    		bw.write(ip+"/32");
    		bw.close();
    		fwrt.close();
    		
    	 break;
    	}
    	default: break;
    	}
		String ftp=base+"ip_user.conf";
		File Ftp=new File(ftp);
		FileWriter fwrt=new FileWriter(Ftp,true);
		BufferedWriter bw=new BufferedWriter(fwrt);
		bw.write(ip+"/255.255.255.255  "+user);
		bw.close();
		fwrt.close();
	}catch(IOException e){
		e.printStackTrace();
	}
		
		return true;
		}
	else
		return false;
	}
}

⌨️ 快捷键说明

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