код состояния Python http

я пишу свой собственный каталог каталогов на Python, и яЯ тестирую его на моем веб-сервере в безопасной и надежной среде. Этот скрипт в основном пытается извлечь общие каталоги с данного веб-сайта и, глядя на код состояния HTTP ответа, может определить, доступна ли страница или нет.

Для начала сценарий считывает файл, содержащий все интересующие каталоги, которые необходимо найти, а затем отправляет запросы следующим образом:

for dir in fileinput.input('utils/Directories_Common.wordlist'):

    try:
        conn = httplib.HTTPConnection(url)
        conn.request("GET", "/"+str(dir))
        toturl = 'http://'+url+'/'+str(dir)[:-1]
        print '    Trying to get: '+toturl
        r1 = conn.getresponse()
        response = r1.read()
        print '   ',r1.status, r1.reason
        conn.close()

Затем ответ анализируется и если код состояния равен200" возвращается, то страница доступна. Я'мы реализовали все это следующим образом:

if(r1.status == 200):
    print '\n[!] Got it! The subdirectory '+str(dir)+' could be interesting..\n\n\n'

Мне кажется, что все в порядке, за исключением того, что скрипт помечает как доступные страницы, которые на самом деле нет. На самом деле, алгоритм собирает единственные страницы, которые возвращают "200 ОК ", но когда я вручную просматривал эти страницы, я обнаружил, что они были перемещены навсегда или имеют ограниченный доступ. Что-то пошло не так, но я не могу определить, где именно исправить код, любая помощь приветствуется ..

Ответы на вопрос(2)

за исключением того, что он почти не читается. Я переписал его в этот рабочий фрагмент:

import httplib

host = 'www.google.com'
directories = ['aosicdjqwe0cd9qwe0d9q2we', 'reader', 'news']

for directory in directories:
    conn = httplib.HTTPConnection(host)
    conn.request('HEAD', '/' + directory)

    url = 'http://{0}/{1}'.format(host, directory)
    print '    Trying: {0}'.format(url)

    response = conn.getresponse()
    print '    Got: ', response.status, response.reason

    conn.close()

    if response.status == 200:
        print ("[!] The subdirectory '{0}' "
               "could be interesting.").format(directory)

Выходы:

$ python snippet.py
    Trying: http://www.google.com/aosicdjqwe0cd9qwe0d9q2we
    Got:  404 Not Found
    Trying: http://www.google.com/reader
    Got:  302 Moved Temporarily
    Trying: http://www.google.com/news
    Got:  200 OK
[!] The subdirectory 'news' could be interesting.

Кроме того, я использовалГОЛОВА HTTP-запрос вместо GET, так как он более эффективен, если вам не нужно содержимое и вас интересует только код состояния.

 user140541712 апр. 2013 г., 12:49
Я взял твой сценарий и начал играть с ним,мы изменили способ получения каталогов, и я использовал: "для каталога в файле fileinput.input ('Utils / Directories_Common.wordlist»):» так как я've все каталоги, перечисленные в этом файле .. с этой модификацией я всегда получаю 400 неверных запросов ...
 user140541712 апр. 2013 г., 13:28
исправить все путем сканирования файла каталогов и заполнения массива каталогом для каждого элемента вектора. Это был способ, которым я получил каталоги, которые вызвали проблемы ..
 user140541712 апр. 2013 г., 13:47
Несмотря на это, когда я использую метод HEAD вместо GET, я всегда получаю 400 неверных запросов .. Я исправил даже этот, когда при импорте каталогов все еще присутствовал новый символ строки, и это вызывало некоторые проблемы.
 user140541712 апр. 2013 г., 12:40
я пытаюсь использовать пример, который вы только что показали мне, когда я делаю запросы в Google, я всегда получаю: 400 неправильных запросов при использовании вашего кода я получаю код состояния, который вы 'я написал в этом посте .. не знаю, что не так .. может ям где-то чего-то не хватает .. если вы хотите взглянуть на основную часть кода здесь:ссылка на сайт
 user140541712 апр. 2013 г., 13:08
Этот файл содержит список всех каталогов для поиска, по одной записи для каждой строки.
 Honza Javorek12 апр. 2013 г., 12:58
Я не могу дать дальнейших советов, если не знаю точно, что это заUtils / Directories_Common.wordlist» файл и какой вывод вы получаете. Вы уверены, что ваши URL возвращают разные коды? Попробуйте проверить это с помощью этого:stackoverflow.com/a/6136861/325365
 user140541712 апр. 2013 г., 13:14
Я обнаружил, что если я использую вектор, содержащий все каталоги, он работает лучше, но я могуя могу вставить почти сотню каталогов в векторЯ хотел бы использовать отдельный файл .. Я '
 Honza Javorek12 апр. 2013 г., 14:02
Возможно, это не поддерживается вашим сервером. Не стесняйтесь использовать вместо этого GET.
 user140541712 апр. 2013 г., 12:06
Большое спасибо, ясделаю его более читабельным, и яЯ постараюсь решить проблему, глядя на вашу реализацию.

Ваш ответ на вопрос