超簡單的網絡管理程序,話說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
@ 歡迎 嘿嘿