超简单的网络管理程序,话说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请用记事本打开,按格式添加或修改不能上的网
啊雷 2015/10/19 19:26
有来看看
admin 博主 2015/10/19 19:45
@ 欢迎 嘿嘿