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("\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

时间: 2024-09-30 06:41:31

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

python多线程编程5: 条件变量同步-乾颐堂

互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持.Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法.线程首先acquire一个条件变量,然后判断一些条件.如果条件不满足则wait:如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件.不断的重复这一过程,从而解决复杂的同步问题. 可以认为Cond

python爬虫之Scrapy 使用代理配置——乾颐堂

在爬取网站内容的时候,最常遇到的问题是:网站对IP有限制,会有防抓取功能,最好的办法就是IP轮换抓取(加代理) 下面来说一下Scrapy如何配置代理,进行抓取 1.在Scrapy工程下新建“middlewares.py” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Importing base64 library because we'll need it ONLY in case if the proxy we are going to use requires au

乾颐堂既有老腊肉也有小鲜肉,欢迎大家来学习,大学生如何学习HCIE,答案来咯

前边给大家分享了工作20余年的刘大哥的经历,下面给大家带来20出头没毕业小伙子的在乾颐堂的学习经历 9月4号开学第一天收到了一份特别的礼物,PASS HCIE 在HCIE的路上要一步一个脚印走过来,我从去年暑假之前加入乾颐堂这个大家庭,与很多在路上的HCIE一样,从对TCP/IP的一无所知,到现在MPLE.BGP.组播全都能够深入掌握,这个和乾颐堂是分不开的. 刚到乾颐堂学习的时候,直接是暑假在光大会展脱产,本来我是学生,其余的时候还要学习别的东西,所以只有暑假有充裕的时间要把握住.2个月的时间

乾颐堂安德华为数通HCNA真题解析版(第2部分)

HCNA真题解析视频即将上线,敬请关注本博客以及乾颐堂官网书接上文:16 Interface GigabitEthernet0/0/1 Port link‐type trunk Port trunk allow‐pass vlan 2 to 4094 根据如上所示的命令输出,下列描述中正确的是()(多选)A GigabitEthernet0/0/1 不允许 VLAN1 通过B GigabitEthernet0/0/1 允许 VLAN1 通过C 如果要把 GigabitEthernet0/0/1

全网唯一华为无线HCNA真题解析版题库,来自乾颐堂安德

本部分内容来自互联网.通过它,您可以同哦过华为认证HCNA-WLAN无线(H12-311)考试.后续视频讲解会上传至51CTO学院,其他学员可以通过乾颐堂官方咨询或者群645866695咨询解析版是军哥一字一字码出来的,转载请注明出处 QUESTION 1无线网络的初步应用开始于哪段时间()? A. 一次大战期间 B. 二次大战期间 C. 20世纪后期D. 2000年以后 Correct Answer: B Explanation/Reference:2战后才初步发展,战争很多时候是促进科技进步

乾颐堂安德HCIE面试真题系列20(董XG),一个失败的案例

20180720董XG杭州面试 1.ppp2.割接3.ospf中邻居建立不起来的原因 上面也是我回答问题的顺序. ppp我就按照我之前模拟面试的时候,按照题库里面往下背,这个我之前也复习到了,就在今天火车上,我还看到了,这题挺顺利,答了大概30分钟吧,中途提问过一句,就是chap认证的用户名为空的时候怎么回事和有用户名的时候分别解释下,她不问的话,我也会说的,正好她也问了,这题我感觉满分. 割接,很久之前预习过,近期也没怎么看,近期就准备理论了,就边回忆题库里面的东西边说了自己工作中碰到的机房迁

来看看军哥对HCIEv3.0预测对了多少内容吧!乾颐堂安德HCIEv3.0视频已经在线

2018年6月,我预期华为会升级数通HCIE,故而一步步的改进华为的课程体系,果不其然,华为在2018年8月末发布"预"公告,大约会在2019年1月份升级RS HCIE到3.0,一切尽在掌握之中.乾颐堂安德2018版HCIEv3.0已经开始上传51CTO它的改变按照官方原文是"HCIE-Routing&Switching V3.0的内容包括但不限于:L2及L3层网络技术.IPv4及IPv6网络协议.路由控制技术.MPLS及MPLS L3 ×××技术.组播技术.网络安全

从其他机构转投乾颐堂的同学pass感言

首先能够通过考试要感谢乾颐堂这个平台,感谢两位老师(军哥和老白),还有一起备考的兄弟.我是从其他机构过来的,之前通过了lab,一面挂了之后来了乾颐堂.首先乾颐堂的模拟面试是我通过考试的重要原因,能够真实的模拟考试环境,锻炼自己的临场表现,理清答题的思路,说白了就是考试的彩排.两道题是确定的,lab和项目,只要这两道题答好,时间说够了,理论只要了解一些,通过是没有问题的.我理论偏弱也没怎么准备,总觉的运气好,考的都会,答的都对,能够通过纯属侥幸,希望后面备考的兄弟可以不留死角,认真准备.下面我简单

乾颐堂鹏同学通过HCIE送给后来者的话

HCIE备考分享最先在考CCIE还是HCIE的时候,还是很犹豫的,CCIE至少都要到北京考试,并且我之前也考过CCNP的,感觉还是有些基础的,但是考试的成本会增加,HCIE在成都就可以考,路途等各种成本基本不用,听说面试比较难.综合考虑了一下,最终还是选择了考HCIE(想挑战一下自己).决定好以后,就开始准备考试,笔试很简单,题库刷了几遍就OK了,只要背好了,一般都是高分通过的.接下来就是备考LAB了,LAB的建议大家按照老师的方法先敲熟悉后,实现了盲敲以后(我当时都不用看拓扑就直接敲命令了),