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,并安装[本文版本 ...
随机推荐
- Index Scans 索引扫描
官方文档链接地址 http://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT1170 Index Scans 在索 ...
- (6)javascript的程序控制结构及语句-----(1)条件判断
程序控制结构及语句 编程就是将现实应用,转换为程序能够读得懂的语法语句.Javascript编程中对程序流程控制主要是通过条件判断语句.循环控制语句及continue.break来完成的,其中条件判断 ...
- 【LeetCode】232. Implement Queue using Stacks
题目: Implement the following operations of a queue using stacks. push(x) -- Push element x to the bac ...
- 【Android Developers Training】 108. 使用模拟定位进行测试
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- JavaScript中的栈及通过栈操作的实例
<script> /*栈操作*/ function Stack() { this.dataStore = []; this.top = 0; this.push = push; this. ...
- JavaScript面向对象轻松入门之多态(demo by ES5、ES6、TypeScript)
多态(Polymorphism)按字面的意思就是"多种状态",同样的行为(方法)在不同对象上有不同的状态. 在OOP中很多地方都要用到多态的特性,比如同样是点击鼠标右键,点击快捷方 ...
- 异常:java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.getCellStyleAt
背景 最近公司所有新项目要使用最新高效快速开发框架nature-framework,框架本身结合NatureMap已经集成excel的高效导入功能,我们要实现高性能的导出功能,因为最新的jxls-2. ...
- Linux之定时任务补充
定时任务两实例 例1: 每分钟打印一次自己的名字拼音全拼到“/server/log/自己的名字命名的文件”中. [root@chengliang log]# mkdir -p /server/log/ ...
- php七牛批量删除空间内的所有文件方法
相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...
- javascript 实现 对XML文件 2级/3级联动操作
js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...