import subprocess
# الأمر لتحميل مكتبة معينة باستخدام pip
command = "pip install whois urllib.parse"
# تنفيذ الأمر في التيرمينال
subprocess.run(command, shell=True)
from flask import Flask, request, jsonify
import whois
import requests
from urllib.parse import urlparse
app = Flask(__name__)
# Store the HTML content in a variable
HTML_CONTENT = '''
سبيدي | فاحص المواقع السريع
سبيدي
فاحص المواقع السريع والذكي
جاري التحليل السريع للموقع...
معلومات الموقع
نصائح تحسين الموقع
تحليل الزيارات
'''
def get_url_info(url):
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
domain = urlparse(url).netloc
domain_info = whois.whois(domain)
registrar = domain_info.get('registrar', 'غير متوفر')
creation_date = domain_info.get('creation_date', 'غير متوفر')
expiration_date = domain_info.get('expiration_date', 'غير متوفر')
info = {
'رابط': url,
'بروتوكول': urlparse(url).scheme,
'النطاق': domain,
'رمز الحالة': response.status_code,
'حجم المحتوى (بايت)': len(response.content),
'نوع المحتوى': response.headers.get('Content-Type', 'غير متوفر'),
'تاريخ الاستجابة': response.headers.get('Date', 'غير متوفر'),
'مسجل النطاق': registrar,
'تاريخ تسجيل النطاق': str(creation_date),
'تاريخ انتهاء النطاق': str(expiration_date)
}
return info
except requests.RequestException as e:
return {'error': f'خطأ في الوصول إلى الرابط {url}: {e}'}
except Exception as e:
return {'error': f'حدث خطأ أثناء جمع المعلومات: {e}'}
def provide_website_tips(status_code):
tips = []
if status_code == 200:
tips.append("- الموقع يعمل بشكل جيد. تأكد من تحسين سرعة التحميل وتجربة المستخدم.")
elif status_code == 404:
tips.append("- الصفحة غير موجودة. تأكد من تحديث الروابط أو إنشاء صفحة 404 مخصصة.")
elif status_code >= 500:
tips.append("- خطأ في الخادم. تحقق من تكوين الخادم وتأكد من عدم وجود مشاكل في البرمجة.")
else:
tips.append(f"- حالة غير متوقعة: {status_code}. تحقق من إعدادات الخادم وتحسين جودة الموقع.")
return tips
def estimate_traffic(url):
traffic_estimate = []
if 'example.com' in url:
traffic_estimate.append("- الموقع يستخدم مثالاً، لذا تقدير الزيارات غير ممكن.")
else:
if 'edu' in urlparse(url).netloc:
traffic_estimate.append("- المواقع التعليمية غالباً ما يكون لديها حركة مرور معتدلة إلى مرتفعة.")
else:
traffic_estimate.append("- تقدير عدد الزيارات غير متاح بدون أدوات تحليل متقدمة.")
return traffic_estimate
@app.route('/')
def index():
return HTML_CONTENT
@app.route('/check-url', methods=['POST'])
def check_url():
data = request.json
url = data.get('url', '')
if not url:
return jsonify({'error': 'مطلوب إدخال الرابط'}), 400
info