📄 shareinternet.class~
字号:
' Gambas class filePUBLIC Content AS StringPUBLIC jcwk AS Boolean PUBLIC i AS Integer PUBLIC outputwk AS String PUBLIC wkmz AS String PUBLIC wkipym AS String PUBLIC firstopen AS Boolean PUBLIC FUNCTION changefromfile(thefilepath AS String ,strwantchange AS String ,strchangeto AS String) AS String DIM intweizhi AS Integer DIM strqian AS String DIM strhou AS String DIM strjieguo AS String DIM thefile AS String DIM thetext AS String thefile= file.Load (thefilepath) thetext=thefile intweizhi = Instr(thetext,strwantchange) IF intweizhi=0 THEN RETURN thetext ENDIF strqian=Left(thetext,intweizhi-1) strhou=Right(thetext,Len(thetext)-intweizhi - Len(strwantchange)) strjieguo = strqian & strchangeto & gb.NewLine & strhou file.Save (thefilepath,strjieguo) RETURN strjieguo ENDPUBLIC FUNCTION chkip(wkipym AS String) AS String DIM a AS String DIM i AS Integer a=""i=1DO WHILE (Mid(wkipym,i,1)) <> "/" a=a & Mid(wkipym,i,1) i=i+1LOOPRETURN a ENDPUBLIC SUB Process_Read() DIM sLine AS String DIM achar AS String DIM aa AS Integer LINE INPUT #LAST, sLine Content = Content & sLine txtoutput.Text = txtoutput.Text & sline & gb.NewLine '检测网卡 IF jcwk=TRUE THEN sline=Trim(sline) IF Instr(sline,"eth")=1 THEN thewk.Text =thewk.Text & "eth" & Trim(Mid(sline,4,2) & "-") ENDIF IF Instr(sline,"inet addr")=1 THEN sline=Mid(sline,11) aa=1 achar=Mid(sline,aa,1) DO WHILE achar<>"B" AND aa < 16 thewk.text=thewk.text & achar aa=aa+1 achar=Mid(sline,aa,1) LOOP thewk.Text = Trim(thewk.Text) & "/" & Mid(sline,Instr(sline,"Mask")+5) IF Mid(thewk.Text,1,3)="eth" THEN cbowk.Add(thewk.Text) cbowk1.Add(thewk.Text) ENDIF thewk.Text ="" ENDIF ENDIFIF firstopen=TRUE AND cbowk.Count > 0 THEN wkmz=Trim(Mid(cbowk.Text,1,Instr(cbowk.Text,"-")-1)) wkipym=Trim(Mid(cbowk.Text ,Instr(cbowk.Text,"-")+1)) firstopen=FALSEENDIF ENDPUBLIC SUB cmdbegin2_Click() DIM baradd AS Float jcwk=FALSE baradd=1/20 probar.Value =0 probar.Visible =TRUE labqy.Text ="正在启用Internet连接共享,请稍候......" labqy.Visible =TRUE Wait(1) EXEC ["service","iptables","restart"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["depmod","-a"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=1" ] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["modprobe","ip_tables"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["modprobe","ip_nat_ftp"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-P","INPUT","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-P","OUTPUT","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-P","FORWARD","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","POSTROUTING","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","PREROUTING","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","OUTPUT","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-A","FORWARD","-s",wkipym,"-j","ACCEPT"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-I","POSTROUTING","-s",wkipym,"-j","MASQUERADE"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","--list"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) IF chk2.Value = TRUE THEN EXEC ["service","iptables","save"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) changefromfile("/etc/sysctl.conf","net.ipv4.ip_forward = 0","net.ipv4.ip_forward = 1") probar1.Value =probar1.Value + baradd Wait(1) EXEC ["chkconfig","iptables","reset"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1)ENDIF probar.Value =1 labqy.Text ="已经启用Internet连接共享,只要您把内网客户机的网关设置为" & chkip(wkipym) & ",客户机就可以通过本机共享上网了。" message("已经启用Internet连接共享") probar.Visible =FALSE ENDPUBLIC SUB cmdend2_Click() DIM baradd AS Float labqy.Text ="正在停用Internet连接共享,请稍候......" labqy.Visible =TRUE probar.Value =0 probar.Visible =TRUE baradd=1/3 Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=0" ] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) probar.Value =1 labqy.Text ="已经停用Internet连接共享。如果您之前曾设置为开机时自动启用Internet连接共享连接,那么电脑重新启动时将会自动启用连接共享。" message("已经停用Internet 连接共享。") probar.Visible =FALSE ENDPUBLIC SUB Button1_Click() jcwk=TRUE cbowk.Clear cbowk1.Clear EXEC [ "ifconfig" ] WAIT FOR READENDPUBLIC SUB Form_Open() firstopen=TRUE thewk.Text ="" jcwk=TRUE EXEC [ "ifconfig" ] WAIT FOR READ ENDPUBLIC SUB cbowk_change() cbowk1.Text =cbowk.Text wkmz=Trim(Mid(cbowk.Text,1,Instr(cbowk.Text,"-")-1)) wkipym=Trim(Mid(cbowk.Text ,Instr(cbowk.Text,"-")+1))ENDPUBLIC SUB cbowk1_change() cbowk.Text =cbowk1.Text wkmz=Trim(Mid(cbowk1.Text,1,Instr(cbowk1.Text,"-")-1)) wkipym=Trim(Mid(cbowk1.Text ,Instr(cbowk1.Text,"-")+1))ENDPUBLIC SUB cmdbegin1_Click() DIM baradd AS Float jcwk=FALSE baradd=1/18 probar1.Value =0 probar1.Visible =TRUE labqy1.Text ="正在启用Internet连接共享,请稍候......" labqy1.Visible =TRUE Wait(1) EXEC ["service","iptables","restart"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["depmod","-a"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=1" ] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["modprobe","ip_tables"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["modprobe","ip_nat_ftp"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-P","INPUT","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-P","OUTPUT","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-P","FORWARD","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","POSTROUTING","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","PREROUTING","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-P","OUTPUT","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-A","FORWARD","-s",wkipym,"-j","ACCEPT"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-I","POSTROUTING","-o","ppp0","-j","MASQUERADE"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","--list"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) IF chk1.Value = TRUE THEN EXEC ["service","iptables","save"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) changefromfile("/etc/sysctl.conf","net.ipv4.ip_forward = 0","net.ipv4.ip_forward = 1") probar1.Value =probar1.Value + baradd Wait(1) EXEC ["chkconfig","iptables","reset"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) ENDIF probar1.Value =1 labqy1.Text ="已经启用Internet连接共享,只要您把内网客户机的网关设置为" & chkip(wkipym) & ",客户机就可以通过本机共享上网了。" message("已经启用Internet连接共享") probar1.Visible =FALSE ENDPUBLIC SUB cmdquit_Click() ME.Close ENDPUBLIC SUB Button5_Click() ME.Close ENDPUBLIC SUB cmdjcwk1_Click() jcwk=TRUE cbowk.Clear cbowk1.Clear EXEC [ "ifconfig" ] WAIT FOR READENDPUBLIC SUB cmdend1_Click() DIM baradd AS Float labqy1.Text ="正在停用Internet连接共享,请稍候......" labqy1.Visible =TRUE probar1.Value =0 probar1.Visible =TRUE baradd=1/3 Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=0" ] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) probar1.Value =1 labqy1.Text ="已经停用Internet连接共享。如果您之前曾设置为开机时自动启用Internet连接共享连接,那么电脑重新启动时将会自动启用连接共享。" message("已经停用Internet 连接共享。") probar1.Visible =FALSE ENDPUBLIC SUB cmddel2_Click() DIM baradd AS Float labqy.Text ="正在删除Internet连接共享,请稍候......" labqy.Visible =TRUE probar.Value =0 probar.Visible =TRUE baradd=1/5 Wait(1) changefromfile("/etc/sysctl.conf","net.ipv4.ip_forward = 1","net.ipv4.ip_forward = 0") probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC ["service","iptables","save"] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=0" ] WAIT FOR READ probar.Value =probar.Value + baradd Wait(1) probar.Value =1 labqy.Text ="已经删除Internet连接共享,如果您之前曾设置为开机时自动启用Internet连接共享连接,那么该设置也被删除,电脑重新启动时将不会再自动启用连接共享。" message("已经删除Internet连接共享。") probar.Visible =FALSEENDPUBLIC SUB cmddel1_Click() DIM baradd AS Float labqy1.Text ="正在删除Internet连接共享,请稍候......" labqy1.Visible =TRUE probar1.Value =0 probar1.Visible =TRUE baradd=1/5 Wait(1) changefromfile("/etc/sysctl.conf","net.ipv4.ip_forward = 1","net.ipv4.ip_forward = 0") probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-t","nat","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["iptables","-F"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC ["service","iptables","save"] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) EXEC [ "sysctl", "-w","net.ipv4.ip_forward=0" ] WAIT FOR READ probar1.Value =probar1.Value + baradd Wait(1) probar1.Value =1 labqy1.Text ="已经删除Internet连接共享,如果您之前曾设置为开机时自动启用Internet连接共享连接,那么该设置也被删除,电脑重新启动时将不会再自动启用连接共享。" message("已经删除Internet连接共享。") probar1.Visible =FALSEEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -