python--DenyHttp项目(2)--ACM监考客户端1.0版
修复了: 360搜索可以使用的漏洞
更新版本,上一版本复制的Hosts文件保留的漏洞
#coding:gbk
import os
import sys
from subprocess import *
import time
def Denyfile():
if not os.path.exists('D:\DenyHttp'):
os.mkdir('D:\DenyHttp')
os.mkdir(r'D:\DenyHttp\restore')
hostsName = 'C:\Windows\System32\drivers\etc\hosts'
filename = r'D:\DenyHttp\hosts'
'''若存在原文件,删除'''
if os.path.exists(r'D:\DenyHttp\hosts') and os.path.exists(r'D:\DenyHttp\restore\hosts'):
print(filename + '已存在!开始删除文件')
os.system("del /f /s /q D:\DenyHttp\*.*")
os.system("rd /s /q D:\DenyHttp")
print('文件已经删除!')
'''删除后创建新的目录'''
print('创建文件夹:')
os.system('mkdir d:\\DenyHttp\\restore')
print('准备复制:')
if not os.system(r'copy '+ hostsName +' D:\DenyHttp'):
print('file remove from ' + hostsName + ' to ' + filename)
if not os.system(r'copy '+ hostsName + r' D:\DenyHttp\restore'):
print('file remove from ' + hostsName + ' to D:\DenyHttp\restore')
L = []
denyNetAddress = getHTTPList(L)
'''添加htttp到文件'''
for s in denyNetAddress:
os.system('echo ' + s +'>>' + filename)
'''修改hosts文件'''
if not os.system(r'copy D:\DenyHttp\hosts C:\Windows\System32\drivers\etc'):
print('file hosts has been already discovered!')
def Recoverfile():
if not os.system(r'copy D:\DenyHttp\restore\hosts C:\Windows\System32\drivers\etc'):
print('file hosts has been already recovered!')
def detectnet():
L = []
denyNetAddress = getNetList(L)
mark = 1
for s in denyNetAddress:
p = Popen(["ping.exe" , s],
stdin=PIPE,stdout=PIPE,stderr=PIPE,
shell=True)
out = p.stdout.read()
if '127.0.0.1' in str(out):
mark = 0
'''mark为假不能访问'''
if not mark:
print('can\'t request http')
else:
print('can request http')
return mark
def getHTTPList(denyNetAddress = []):
denyNetAddress.append('127.0.0.1 sg.search.yahoo.com')
denyNetAddress.append('127.0.0.1 www.cnblogs.com')
denyNetAddress.append('127.0.0.1 www.baidu.com')
denyNetAddress.append('127.0.0.1 www.sogou.com')
denyNetAddress.append('127.0.0.1 blog.csdn.net')
denyNetAddress.append('127.0.0.1 www.soso.com')
denyNetAddress.append('127.0.0.1 cn.bing.com')
'''1.0修复'''
denyNetAddress.append('127.0.0.1 www.so.com')
return denyNetAddress
def getNetList(denyNetAddress = []):
denyNetAddress.append('www.baidu.com')
denyNetAddress.append('www.sogou.com')
denyNetAddress.append('www.soso.com')
denyNetAddress.append('cn.bing.com')
denyNetAddress.append('www.so.com')
denyNetAddress.append('sg.search.yahoo.com')
denyNetAddress.append('www.cnblogs.com')
denyNetAddress.append('blog.csdn.net')
return denyNetAddress
if __name__ == '__main__':
# Denyfile()
Recoverfile()
# print(detectnet())
python--DenyHttp项目(2)--ACM监考客户端1.0版的更多相关文章
- python--DenyHttp项目(2)--ACM监考客户端测试版(1阶段客户端总结)
客户端: 1.既然脚本是让别人用的,怎么说也得有个界面,(虽然很low) ''' DenyManager.py 调用客户端与客户端界面 ''' from DenyClient import * fro ...
- python--DenyHttp项目(2)--ACM监考客户端测试版☞需求分析
写脚本之前,先写个需求分析 以后会多写一些脚本,会注意这方面的 禁止HTTP请求☞需求分析 核心功能: 通过修改Hosts文件,禁止用户访问百度等搜索引擎 实现方法: 通过CMD控制台命令COPY覆盖 ...
- python【项目】:选课系统【简易版】
功能要求 角色:学校.学员.课程.讲师要求:1. 创建学校2. 创建课程3. 课程包含,周期,价格,通过学校创建课程4. 通过学校创建班级, 班级关联课程.讲师5. 创建学员时,选择学校,关联班级5. ...
- 使用Nginx+Uwsgi部署Python Flask项目
第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...
- 32个Python爬虫项目让你一次吃到撑
整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众 ...
- Github上的python开源项目
Python开源项目,期待大家和我们一起共同维护 github排名榜单 https://github.com/trending github搜索榜单:https://github.com/search ...
- Android 开源项目 eoe 社区 Android 客户端(转)
本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
- Pycharm+django新建Python Web项目
这两天初学Python,首先是学习Python语法有PyCharm就可以运行Console程序了,因为是初学所以,尽量写的比较详细,包括参考的资料地址... 1.下载Python,并安装[本文版本 ...
随机推荐
- Swift计算字符数量
通过调用全局 countElements 函数并将字符串作为参数进行传递可以获取该字符串的字符数量. let unusualMenagerie = "Koala
- js原生获取className&多选一
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Example003通过按钮创建窗口
<!--实例003通过按钮创建窗口--> <head> <meta charset="UTF-8"> </head> <for ...
- 程序员必须知道的六大ES6新特性
二 .字符串扩展 1.传统上,JavaScript只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6又提供了三种新方法. includes():返回布尔值,表示是否找到了参 ...
- accp8.0转换教材第8章JavaScript对象及初识面向对象理解与练习
JavaScript数据类型,对象,构造函数,原型对象,初识原型链,对象继承 一.单词部分 ①object父类②constructor构造函数③instance实例④call调用 ⑤apply应用⑥c ...
- c# ProxyServer 代理服务器 不是很稳定
/**C# Programming Tips & Techniquesby Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill ...
- Java IO学习笔记(五)对象流
1.Object流:直接将Object写入或读出. 2.序列化:将Object直接转化成字节流写到硬盘或网络上. 3.如果想把一个对象转化成字节流,该对象的实体类必须得实现Serializable接口 ...
- 第二章:2.3 验证Django安装成功
检查 Django 是否安装成功步骤如下: 1. 在dos 命令行中进入python环境: 2. 在python环境下面输入: import django # 导入django 的包 djan ...
- JavaWeb 后端 <五> 之 JSP 学习笔记
一.JSP简介 1.也是SUN公司推出的开发动态web资源的技术,属于JavaEE技术之一.由于原理上是Servlet, 所以JSP/Servlet在一起. 二.HTML.Servlet和JSP 1. ...
- Java 时钟
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8" ...