• python 探测网站目录的GUI程序-乾颐堂


    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(" ","")
                    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=" "+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

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)
    Controls 属性与继承 TShape 类的小练习(使用TShape可以解决很多图形问题)
    QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
  • 原文地址:https://www.cnblogs.com/qytang/p/5588213.html
Copyright © 2020-2023  润新知