LINUX

آموزش لینوکس

LINUX

آموزش لینوکس

LINUX

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

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

با سلام. امروز ی کم بیشتر روی برنامه ای که قبلا برای دیدن وضعیت سایت نوشته بودم وقت گذاشتم و ی کم کاملترش کردم. خوبی این کد اینه که دقت کارش بیشتر شده و خطاهای بیشتری رو هندل میکنه.

همونطور که گفتم این برنامه یک فایل که لیستی از سایت ها (بدون http سایت را وارد کنید) را به عنوان ورودی از کاربر گرفته و اگر او سایت وجود داشت و به قول معروف بالا بود توی یک فایل به نام ok.txt میریزه.


برای دیدن کد به ادامه مطلب تشریف ببرید.

#!/usr/bin/python
import os
import sys
import urllib2
from urllib2 import HTTPError
print '''
#Date: Tue Jul  1 16:23:25 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.2                 +
 +-----------------------------+
'''
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 \"quit\"...\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' % ('http://' + url.strip()) + '\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:
OK.write('%-15s' % ('http://' + url.strip()) + '\n')
OK.flush()
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="">
تجدید کد امنیتی