首页 » 原創 » 正文

[原创]基于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 个回复

发表评论