首頁 » 原創 » 正文

[原創]基於java的上網管控程序

超簡單的網絡管理程序,話說java真不適合開發管控類程序,jre是硬傷。
通過修改hosts來阻止上網,但會被其它安全軟件改回來,怎麼辦?1分鐘修改一次>_< 每天10小時上網時間,可查詢剩餘時間,可掛機,到時間不能上指定網站(我設置的是bilibili,百度等,可修改),其它網站不受影響,新的一天自動恢復。使用360網絡診斷和其它工具後會在1分鐘內恢復斷網狀態,自己開發的程序,bug和疏漏難免,開發時間一個下午>_<

function.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class function {
	public void writeDate(String x,String addr){
		try {
			BufferedWriter bw = new BufferedWriter(new FileWriter(addr));
			bw.write(x);
			bw.close();
		} catch (Exception e) {}
	}
	public int readDate(String addr){
		int x=0;
		try {
			BufferedReader bf = new BufferedReader(new FileReader(addr));
			int i;String temp="0";
			while ((i = bf.read()) != -1) {
				temp += String.valueOf((char) i);}
			bf.close();
			x=Integer.valueOf(temp);
		} catch (IOException e1) {
			e1.printStackTrace();}
		return x;}
	public boolean copyFile(String fileFrom, String fileTo) {  
        try {  
            FileInputStream in = new java.io.FileInputStream(fileFrom);  
            FileOutputStream out = new FileOutputStream(fileTo);  
            byte[] bt = new byte[1024];  
            int count;  
            while ((count = in.read(bt)) > 0) {  
                out.write(bt, 0, count);  
            }  
            in.close();  
            out.close();  
            return true;  
        } catch (IOException ex) {  
            return false;  
        }  }
	public void deleteFile(String filePath){
		File f = new File(filePath);
		if(f.exists())
		f.delete();}
}
exec.java
import java.util.Calendar;
      public class exec {
      public static void main(String[] args) {
		function fn=new function();
		int oldDay=fn.readDate("C:\\tm\\day.txt");
		System.out.println("讀入舊日期為"+oldDay);
		Calendar c = Calendar.getInstance();
		int day = c.get(Calendar.DAY_OF_MONTH);
		if(oldDay!=day){
			fn.writeDate("720", "C:\\tm\\time.txt");
			System.out.println("設置為新的一天");
			fn.writeDate(String.valueOf(day), "C:\\tm\\day.txt");
			System.out.println("寫入今天是"+day+"號");
		}
		for(int i=0;true;i++){
			int oldTime=fn.readDate("C:\\tm\\time.txt");
			System.out.println("讀入舊時間:"+oldTime);
			if(oldTime<=0){fn.copyFile("C:\\tm\\hosts","C:\\Windows\\System32\\drivers\\etc\\hosts");}
			else{oldTime--;}
			fn.writeDate(String.valueOf(oldTime),"C:\\tm\\time.txt");
			System.out.println("輸出新時間:"+oldTime);
			try {Thread.sleep(60000);} catch (InterruptedException e) {e.printStackTrace();}
			System.out.println("循環完成次數"+i);
		}
		
	}

}
check.java
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class check extends JFrame {

	public static void main(String[] args) {
		JFrame jf=new JFrame("操作窗口");
		jf.setBounds(300, 200, 260, 180);
		Container c=new Container();
		JLabel jl=new JLabel();
		JButton jb1=new JButton("掛機");
		JButton jb2=new JButton("回來");
		function fn=new function();
		jb1.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				fn.copyFile("C:\\tm\\host.txt","C:\\Windows\\System32\\drivers\\etc\\hosts");
				fn.writeDate(String.valueOf(fn.readDate("C:\\tm\\time.txt")),"C:\\tm\\time2.txt");
				jb1.setEnabled(false);
				jb1.setText("已在掛機狀態");
			}});
		jb2.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				fn.deleteFile("C:\\Windows\\System32\\drivers\\etc\\hosts");
				fn.writeDate(String.valueOf(fn.readDate("C:\\tm\\time2.txt")),"C:\\tm\\time.txt");
				System.exit(0);
			}});
		jl.setText("現在還有"+fn.readDate("C:\\tm\\time.txt")+"分鐘!");
		jl.setBounds(50, 20, 200, 30);
		jb1.setBounds(50, 65, 150, 30);
		jb2.setBounds(50, 105, 150, 30);
		c.add(jl);
		c.add(jb2);
		c.add(jb1);
		jf.add(c);
		jf.setVisible(false);
		jf.setVisible(true);
	}

}

創建4個文件,全部在tm文件夾下
---day.txt---
1
---time.txt---
720
---time2.txt---
0
---hosts---
127.0.0.1 www.bilibili.com
127.0.0.1 www.baidu.com
---------------
將tm文件夾拷貝到c盤下
將Timeexec拷貝到開始菜單---啟動文件夾下
TimeCheck是臨時掛機和時間查看界面
tm中的day.txt保存當前日期,判斷新的一天
time表示剩餘時間 time2表示掛機的剩餘時間
hosts請用記事本打開,按格式添加或修改不能上的網

本文共 2 個回復

發表評論