1.pyqt4写的界面 find_ui.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#-*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
   
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s
   
try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)
   
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(516, 467)
        self.label = QtGui.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(20, 10, 54, 16))
        self.label.setObjectName(_fromUtf8("label"))
        self.edit_address = QtGui.QLineEdit(Form)
        self.edit_address.setGeometry(QtCore.QRect(80, 10, 351, 20))
        self.edit_address.setObjectName(_fromUtf8("edit_address"))
        self.button_search = QtGui.QPushButton(Form)
        self.button_search.setGeometry(QtCore.QRect(440, 10, 61, 23))
        self.button_search.setObjectName(_fromUtf8("button_search"))
        self.text_all = QtGui.QTextEdit(Form)
        self.text_all.setGeometry(QtCore.QRect(20, 40, 411, 261))
        self.text_all.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.text_all.setObjectName(_fromUtf8("text_all"))
        self.label_2 = QtGui.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(20, 320, 54, 12))
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.text_exist = QtGui.QTextEdit(Form)
        self.text_exist.setGeometry(QtCore.QRect(20, 340, 411, 64))
        self.text_exist.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.text_exist.setObjectName(_fromUtf8("text_exist"))
        self.label_3 = QtGui.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(380, 310, 91, 20))
        self.label_3.setText(_fromUtf8(""))
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.edit_add = QtGui.QLineEdit(Form)
        self.edit_add.setGeometry(QtCore.QRect(20, 420, 411, 20))
        self.edit_add.setObjectName(_fromUtf8("edit_add"))
        self.button_add = QtGui.QPushButton(Form)
        self.button_add.setGeometry(QtCore.QRect(440, 420, 71, 23))
        self.button_add.setObjectName(_fromUtf8("button_add"))
        self.label_4 = QtGui.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(20, 440, 251, 16))
        self.label_4.setObjectName(_fromUtf8("label_4"))
   
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
   
    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "目录探测工具", None))
        self.label.setText(_translate("Form", "网站地址:", None))
        self.button_search.setText(_translate("Form", "探测", None))
        self.label_2.setText(_translate("Form", "结果:", None))
        self.button_add.setText(_translate("Form", "添加地址", None))
        self.label_4.setText(_translate("Form", "例如:/admin/manager.asp  请以斜杠开始", None))

2. 启动文件 start.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/local/bin/python
#coding=utf-8
   
import sys
import os
import time
import httplib
import re
from PyQt4 import QtCore, QtGui
from threading import Thread
   
from find_ui import Ui_Form
   
   
class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.button_search,QtCore.SIGNAL("clicked()"), self.startthread)
        QtCore.QObject.connect(self.ui.button_add,QtCore.SIGNAL("clicked()"), self.addAddress)
    def startSearch(self):
        self.ui.label_3.setText(""
        self.getAddress()
        address=str(self.ui.edit_address.text())
        self.accessAddesss(address)
           
    def startthread(self):
        t1=Thread(target=self.startSearch,)
        t1.start()
           
           
    def getAddress(self):
        try:
            global addresslist
            addresslist=[]
            filePath=os.getcwd()+"\\address.txt"
           # if not os.path.isfile(filePath):
            #    print 'aaa'             
             #   return 0
                  
            fileAddress=file(filePath,"r")
            for address_line in fileAddress.readlines():
                if address_line not in addresslist:
                    addresslist.append(address_line)
                    pass
                pass
            pass
            fileAddress.close()
               
        except:
            #self.ui.text_all.setText('aaa')
            self.ui.text_all.setText(u'打开文件错误')
            pass
        finally:
            #fileAddress.close()
            pass
       # print addresslist[0]
       
    def accessAddesss(self,host):
        try:
            print host
            print len(addresslist)
            for oneAddress in addresslist:
                print len(addresslist)
                oneAddress=oneAddress.replace("\n","")
                print oneAddress
                connection=httplib.HTTPConnection(host,80,timeout=10)
                connection.request("GET",oneAddress)
                response=connection.getresponse()
                result=response.reason
                resultNum=response.status
                   
                if "OK" in result or "Forbidden" in result:
                    getaddress="http://"+host+oneAddress+"------"+str(resultNum)+":"+result
                    self.ui.text_exist.append(getaddress)
                else:
                    self.ui.text_all.append("http://"+host+oneAddress+"------"+str(resultNum)+":"+result)
                       
                connection.close()
        except Exception as e:
            print e.message
        self.ui.label_3.setText(u"探测完成"
        self.ui.label_3.colorCount()
          
    def  addAddress(self):
        try:
            filePath=os.getcwd()+"\\address.txt"      
            fileAddress=file(filePath,"a")
            newAddress="\n"+str(self.ui.edit_add.text())
            print newAddress
            fileAddress.write(newAddress)
            fileAddress.close()
        except Exception as e:
            print e.message
           
   
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    sys.exit(app.exec_())

3.address.txt 扫描地址名单文件,可以通过编辑改文件制定自己的规则,你懂的~~

/admin.php

/admin/

/administrator/

/moderator/

/webadmin/

/adminarea/

/bb-admin/

/adminLogin/

/test/login.jsp

/source/login.php

www.qytang.com/
http://www.qytang.com/cn/list/29/
http://www.qytang.com/cn/list/28/404.htm
http://www.qytang.com/cn/list/28/397.htm
http://www.qytang.com/cn/list/28/396.htm
http://www.qytang.com/cn/list/28/395.htm
http://www.qytang.com/cn/list/28/394.htm
http://www.qytang.com/cn/list/28/393.htm
http://www.qytang.com/cn/list/28/391.htm
http://www.qytang.com/cn/list/28/389.htm
http://www.qytang.com/cn/list/28/388.htm
http://www.qytang.com/cn/list/28/362.htm
http://www.qytang.com/cn/list/28/358.htm
http://www.qytang.com/cn/list/28/351.htm
http://www.qytang.com/cn/list/28/348.htm
http://www.qytang.com/cn/list/28/340.htm
http://www.qytang.com/cn/list/28/338.htm
http://www.qytang.com/cn/list/28/336.htm
http://www.qytang.com/cn/list/28/330.htm

python 探测网站目录的GUI程序-乾颐堂的更多相关文章

  1. Python使用wxPython、py2exe编写桌面程序-乾颐堂

    Python是支持可视化编程,即编写gui程序,你可以用它来编写自己喜欢的桌面程序.使用wxPython来做界面非常的简单,只是不能像C#一样拖动控件,需要自行写代码布局.在完成编写之后,由于直接的p ...

  2. Python创建单例模式的5种常用方法-乾颐堂

    所谓单例,是指一个类的实例从始至终只能被创建一次. 方法1 如果想使得某个类从始至终最多只有一个实例,使用__new__方法会很简单.Python中类是通过__new__来创建实例的: 1 2 3 4 ...

  3. Python监控日志程序-乾颐堂

    一个简易的日志监控的脚本,功能如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应 注意:是在win环境下哦 直接上代码吧 1 2 3 4 ...

  4. python用sqlite3模块操作sqlite数据库-乾颐堂

    SQLite是一个包含在C库中的轻量级数据库.它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库. 一些应用可是使用SQLite保存 ...

  5. python生成验证码,文字转换为图片-乾颐堂

    在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码.这些都是动态生成的,今天我们来看一下如何用python把文字生成图片.其实今天主要借助pygame的图像渲染模块,这样比较简单 ...

  6. python移除系统多余大文件-乾颐堂

    文件多了乱放, 突然有一天发现硬盘空间不够了, 于是写了个python脚本搜索所有大于10MB的文件,看看这些大文件有没有重复的副本,如果有,全部列出,以便手工删除 使用方式 加一个指定目录的参数 比 ...

  7. python实现高效率的排列组合算法-乾颐堂

    组合算法 本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中. 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数. 然后从左到右扫描数组 ...

  8. Python 执行js的2种解决方案-乾颐堂

    第1种方案 SpiderMonkey是Mozilla项目的一部分,是一个用C语言实现的JavaScript脚本引擎, 该引擎分析.编译和执行脚本,根据JS数据类型和对象的需要进行内存分配及释放操作:利 ...

  9. Python图像处理库:Pillow 初级教程-乾颐堂

    Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片. 使用Image模块中的open函数 ...

随机推荐

  1. I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking

    <!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG elem ...

  2. mysql下,保存时间时具体时间丢失,只保存了日期的问题

    将日志信息记入数据库时增加了一个时间字段,发现存入数据库时只保留了日期,而没有时分秒信息. 我这边环境是(SRPINGMVC+Mybatis,mysql版本5.6.28以上),java层使用类型为ja ...

  3. BZOJ2124: 等差子序列(树状数组&hash -> bitset 求是否存在长度为3的等差数列)

    2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 2354  Solved: 826[Submit][Status][Discuss ...

  4. Mac下忘记mysql的root密码

    cd /usr/local/mysql/bin sudo su sudo /usr/local/mysql/support-files/mysql.server stop # ./mysqld_saf ...

  5. python functiontools 模块

    一个内置的模块.  作用是实现了更多的功能, 同时形式上显得很简洁.    虽然在使用很方便, 但其中的原理还是很难复杂的. ------------------------------------- ...

  6. 便捷的Jenkins jswidgets

    很多时候我们在构建完成之后需要查看构建的状态,类似github 中的build Status 插件安装 搜索插件 使用 目前好像只支持自由项目的构建 代码集成 <!DOCTYPE html> ...

  7. VirtualBox的vdi映像导入遇到的uuid冲突问题 (转)

      virtualbox导入vdi文件时出现下面的问题: 打开hard disk D:\software\GT5.0.0.vdi 失败 Cannot register the hard disk 'D ...

  8. 转-oracle中比较两表表结构差异和数据差异的方法

    oracle中比较两表表结构差异和数据差异的方法 原作者:li2008xue2008ling  出处:http://blog.csdn.net       在工作中需要完成这么一个需求:比较两个表的表 ...

  9. MySQL 多表关联更新及删除

    目录: <MySQL中的两种临时表> <MySQL 多表关联更新及删除> <mysql查询优化之三:查询优化器提示(hint)> 一.      多表关联更新 问题 ...

  10. 【精华】部署与管理ZooKeeper(转)

    部署与管理ZooKeeper(转) 本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin. ...