LINUX

آموزش لینوکس

LINUX

آموزش لینوکس

LINUX

این وبلاگ به بحث پیرامون لینوکس و امنیت و زبان برنامه نویسی تحت لینوکس می پردازد.

طبقه بندی موضوعی

برنامه گرفتن وضعیت سایت - نسخه ۰.۳

شنبه, ۱۴ تیر ۱۳۹۳، ۰۹:۳۱ ق.ظ
بعد از انجام برخی تست ها روی برنامه ای که قبلا دو نسخه شو قرار داده بودم بعضی خطاها و کاستی هایی حس میشد که امروز به این نتیجه رسوند من رو که ی سری تغییراتی بهش بدم تا دقیق تر کار کنه.
برای دیدن تغییرات به ادامه مطلب رجوع کنید:

شکلی که در پایین ملاحظه میکنید نمونه ای از اجرای این برنامه هست:

#!/usr/bin/python
import os import sys import socket import httplib import urllib2 from urllib2 import HTTPError
print '''
#Date: Sat Jul  5 09:27:29 IRDT 2014
#This program takes a file list of urls[without http] as an argument then prints the status code and errors. If the sites are up it writes them to ok.txt
         _\|/_
         (o o)
 +----oOO-{_}-OOo--------------+
 |@Author: Triumph             +
 |@Name: url-status            +
 |#Mail: linusecmail@gmail.com +
 |@Version:0.3                 +
 +-----------------------------+
'''
if len(sys.argv) < 2:
        print 'usage: python %s <file-urls>' % (sys.argv[0])
        sys.exit(2)
while True:
question = raw_input("Do you want to remove previous results? (y=yes | n=no | q=quit) ")
if question == 'y':
os.system("rm -f ok.txt")
print "\nThe file \"ok.txt\" is removed successfully.\n"
break
elif question == 'n':
print "\nThe reults are appending...\n"
break
elif question == 'q':
print "\nYou are quitting...\n"
sys.exit(1)
else:
print "You must enter \'y\' for \"yes\" or \'n\' for \"no\" or \'q\' for \"quitting\"...\n"

print '%-15s %20s' % ('URL_PAGE', 'STATUS')
FileName = sys.argv[1]
InputFile = open(FileName)
OK = open('ok.txt', 'a+')
for url in InputFile:
try:
status = urllib2.urlopen('http://' + url, timeout=8).getcode()
print '%-15s\t%10s' % ('http://' + url.strip(), status)
if status == 200:
OK.write('%-15s\t%10s' % ('http://' + url.strip(), status) + '\n')
OK.flush()
except urllib2.URLError as e:
print '%-15s\t%15r' % ('http://' + url.strip(), e)
if isinstance(e, HTTPError):
try:
   resp = urllib2.urlopen('http://' + url)
   contents = resp.read()
except urllib2.HTTPError as error:
   contents = error.read()
if "HTTP Error 404" not in contents or "Connection refused" not in contents:
OK.write('%-15s\t%15r' % ('http://' + url.strip(), e) + '\n')
OK.flush()
        except socket.error as socketerror:
             print '%-15s\t%15r' % ('http://' + url.strip(), socketerror)
        except httplib.BadStatusLine as httpliberror:
            print '%-15s\t%15r' % ('http://' + url.strip(), httpliberror)
except (KeyboardInterrupt, SystemExit):
print "\nKeyboardInterruption with Ctrl+c signal"
sys.exit(1)
OK.close()

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی