📌 عنوان برنامه: برنامه‌ای بنویسید که Webcam متصل به دستگاه را روشن کرده و هر ثانیه یک‌بار، یک عکس از تصویر موجود در Webcam گرفته و با تصویر قبل آن‌را مقایسه کند و اگر تغییری در تصویر جدید بوجود آمده بود (Motion Detection)، تصویر مربوطه را با توجه به تاریخ و زمان سیستم، و با فرمت png ذخیره نماید؟

نکته: برای درک فلسفه این کد، به مطلب قبلی مراجعه نمایید!

# **************************************************
# pip install opencv-python
# https://github.com/opencv/opencv-python
# **************************************************
import time
import cv2 as cv
import numpy as np
from datetime import datetime

capture = cv.VideoCapture(index=0)

# Check if the webcam is opened correctly
if not capture.isOpened():
print("[#] Can not open webcam!")
quit()

last_mean = None

while True:
time.sleep(1)

# Frame means Webcam Image Capture!
result, frame = capture.read()

if result:
# Converting color image to gray_scale image
gray = cv.cvtColor(src=frame, code=cv.COLOR_BGR2GRAY)

# In first iteration we assign the
# value of 'old_gray' to our first frame
if last_mean is None:
last_mean = np.mean(gray)
continue

difference = np.abs(np.mean(gray) - last_mean)
# print(difference)

last_mean = np.mean(gray)

if difference > 0.3:
print("Motion Detected!")

now = datetime.now()
formated_now = now.strftime("%Y_%m_%d_%H_%M_%S")
filename = f"Capture_{formated_now}.png"
cv.imwrite(filename=filename, img=frame)

# Wait 1ms for ESC to be pressed
key = cv.waitKey(delay=1)
if key == 27:
break

capture.release()
cv.destroyAllWindows()
# **************************************************

#SourceCode #SourceCode10030 #Practical
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
8👍4
📌 عنوان برنامه: تابعی به نام is_national_code_valid بنویسید که یک ورودی به نام value از جنس رشته (String)، دریافت نموده و در صورتی که مقدار value، یک کد ملی معتبر بود، مقدار True و در غیر این صورت، مقدار False را برگرداند؟

تذکر: با توجه به الگوریتم ذیل، سعی کنید که تابع مذکور را پیاده‌سازی و تست نمایید. انشاءالله تا ۲۴ ساعت آینده، به دو روش ساده و حرفه‌ای، سورس‌کد مربوطه، منتشر خواهد شد، و شما می‌توانید، کد خود را با این دو کد منتشر شده، مقایسه نمایید.

تذکر: در صورتی که شخصی از کد ملی جعلی یا Fake استفاده نماید، مجازات آن، بر طبق قانون، از ۶ ماه تا ۳ سال زندان بوده و یا به صورت جریمه نقدی، محکوم به پرداخت از ۳ الی ۱۸ میلیون ریال برای فرد خاطی در نظر گرفته می‌شود!

نکته‌ای، صرفا در جهت اطلاعات عمومی: سه رقم اول، مربوط به کد شهر می‌باشد!

- در صورتی که value، هیچ مقداری نداشته باشه (None)، کد ملی معتبر نمی‌باشد.
- تمام Space های مقدار value را از بین می‌بریم.
- در صورتی که طول رشته value، بزرگ‌تر از ۱۰ کاراکتر و یا کمتر از ۸ کاراکتر باشد، کد ملی معتبر نمی‌باشد.
- در صورتی که طول رشته value، برابر ۸ کاراکتر باشد، از سمت چپ، دو صفر به آن اضافه می‌کنیم، تا طول رشته ۱۰ کاراکتر شود.
- در صورتی که طول رشته value، برابر ۹ کاراکتر باشد، از سمت چپ، یک صفر به آن اضافه می‌کنیم، تا طول رشته ۱۰ کاراکتر شود.
- در صورتی که تمام کاراکترهای مقدار value، عددی نباشند، کد ملی معتبر نمی‌باشد.
- در صورتی که همه ارقام کد ملی، کاملا یکسان باشند، کد ملی معتبر نمی‌باشد. یعنی، مثلا اگر همه ارقام یک باشند، کد ملی معتبر نمی‌باشد!

- نکته: اولین رقم در کد ملی، اولین رقم در سمت چپ آن می‌باشد و طبعا آخرین (دهمین) رقم در کد ملی، اولین رقم در سمت راست آن می‌باشد.

- حال متغیری به نام sum، تعریف کرده و اولین رقم کد ملی را در عدد ۱۰ ضرب کرده و با متغیر sum، جمع می‌کنیم و مجددا دومین رقم کد ملی را در عدد ۹ ضرب کرده و با متغیر sum، جمع می‌کنیم و این عمل را تا نهمین! رقم کد ملی تکرار می‌کنیم.
- دهمین رقم کد ملی را در متغیری به نام control_digit ذخیره می‌کنیم.
- باقیمانده حاصل این جمع را بر عدد ۱۱ بدست آورده و آن‌را در متغیری به نام remainder ذخیره می‌کنیم.

تست نهایی:

- در صورتی که مقدار remainder، کمتر از عدد ۲ باشد (یعنی یا صفر یا یک باشد)، اگر مقدار remainder، برابر مقدار control_digit باشد، کد ملی معتبر بوده و در غیر این صورت معتبر نمی‌باشد!

- در صورتی که مقدار remainder، بزرگ‌تر یا مساوی عدد ۲ باشد، اگر تفاضل remainder از عدد ۱۱، مساوی مقدار control_digit باشد، کد ملی معتبر بوده و در غیر این صورت معتبر نمی‌باشد!

#ALGORITHM #SourceCode10031 #Practical
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
4👍2
Forwarded from 🛑 Iranian Experts 🛑 (𝓓𝓪𝓻𝓲𝓾𝓼𝓱 𝓣𝓪𝓼𝓭𝓲𝓰𝓱𝓲)
🎁 به بهانه روز جهانی برنامه‌نویسان...

💚 سلام دوستان عزیزم 💚

من داریوش تصدیقی هستم، مدیر کانال تلگرامی متخصصین ایرانی، من به وجود یکایک شما برنامه‌نویسان این مرز و بوم افتخار می‌کنم و این روز را به همه شما عزیزان تبریک عرض می‌کنم، انشاءالله همیشه و همه جا، سلامت و شاد و موفق باشید...

به بهانه این روز عزیز، می‌خواهم یک روش شیک، باکلاس و جذاب را برای انتشار سورس‌کدهای ارزشمند شما آموزش دهم. با استفاده از هر یک از سه روش ذیل، شما می‌توانید (بخشی/همه) سورس‌کدهای خود را، با توجه به زبان برنامه‌نویسی که آن‌را نوشته‌اید، مانند تصویر فوق، به یک فایل تصویر زیبا تبدیل نموده و آن‌را در شبکه‌های اجتماعی و غیره منتشر نمایید:

📌 روش اول: نصب یک Extension، بر روی Visual Studio Code

- Code Snapshot

📌 روش دوم: استفاده از دو سایت آنلاین ذیل:

- https://carbon.now.sh
- https://ray.so

ادمین کانال:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
14👍9
📌 عنوان برنامه: تابعی به نام is_national_code_valid بنویسید که یک ورودی به نام value از جنس رشته (String)، دریافت نموده و در صورتی که مقدار value، یک کد ملی معتبر بود، مقدار True و در غیر این صورت، مقدار False را برگرداند؟

تذکر: الگوریتم مربوط به این برنامه، در دو مطلب قبل به طور کامل منتشر شده است!

تذکر: در این سورس‌کد، سعی بر این شده است که از دستورات ساده و پایه‌ای پایتون استفاده شود، این مدل کدنویسی، معمولا مربوط به برنامه‌نویسان Junior می‌باشد! در برنامه بعدی، سعی می‌کنیم که سورس‌کد را کمی حرفه‌ای‌تر بنویسیم!

# ********************
def is_national_code_valid(value: str):
if value == None:
return False

value = value.replace(" ", "")

if len(value) < 8 or len(value) > 10:
return False

if len(value) == 9:
value = f"0{value}"

if len(value) == 8:
value = f"00{value}"

if value.isnumeric() == False:
return False

if (
value == "0000000000"
or value == "1111111111"
or value == "2222222222"
or value == "3333333333"
or value == "4444444444"
or value == "5555555555"
or value == "6666666666"
or value == "7777777777"
or value == "8888888888"
or value == "9999999999"
):
return False

sum = 0
sum += int(value[0]) * 10
sum += int(value[1]) * 9
sum += int(value[2]) * 8
sum += int(value[3]) * 7
sum += int(value[4]) * 6
sum += int(value[5]) * 5
sum += int(value[6]) * 4
sum += int(value[7]) * 3
sum += int(value[8]) * 2

control_digit = int(value[9])

remainder = sum % 11

if remainder < 2:
if remainder == control_digit:
return True
else:
if 11 - remainder == control_digit:
return True

return False
# ********************

#SourceCode #SourceCode10031 #Practical
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
4👍2
📌 عنوان برنامه: تابعی به نام is_national_code_valid بنویسید که یک ورودی به نام value از جنس رشته (String)، دریافت نموده و در صورتی که مقدار value، یک کد ملی معتبر بود، مقدار True و در غیر این صورت، مقدار False را برگرداند؟

تذکر: الگوریتم مربوط به این برنامه، در دو مطلب قبل به طور کامل منتشر شده است!

تذکر: در این سورس‌کد، سعی بر این شده است که از دستورات حرفه‌ای‌تر پایتون استفاده شود، این مدل کدنویسی، معمولا مربوط به برنامه‌نویسان Senior می‌باشد!

# ********************
def is_national_code_valid(value: str):
if value == None:
return False

value = value.replace(" ", "")

if len(value) < 8 or len(value) > 10:
return False

if len(value) == 9:
value = f"0{value}"

if len(value) == 8:
value = f"00{value}"

if value.isnumeric() == False:
return False

for index in range(10):
if value == str(index) * 10:
return False

sum = 0
for index in range(9):
sum += int(value[index]) * (10 - index)

control_digit = int(value[9])

remainder = sum % 11

if remainder < 2:
if remainder == control_digit:
return True
elif 11 - remainder == control_digit:
return True

return False
# ********************

#SourceCode #SourceCode10031 #Practical
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
3👍2
Forwarded from 🛑 Iranian Experts 🛑 (𝓓𝓪𝓻𝓲𝓾𝓼𝓱 𝓣𝓪𝓼𝓭𝓲𝓰𝓱𝓲)
💚 معرفی سایت‌های فتح پرچم!
💚 Capture the Flag (CTF) Sites!

این سایت‌ها، سایت‌هایی هستند که چالش‌های زیادی برای شما فراهم می‌کنند، و شما می‌توانید با استفاده از دانش Hack (هک)، نسبت به حل آن‌ها اقدام کرده و در نهایت به یک کد خاص دسترسی پیدا کنید! به این کد، اصطلاحا پرچم گفته می‌شود و اصطلاحا شما پرچم را فتح می‌کنید!

سایت‌های زیادی در این خصوص وجود دارند، که به مرور زمان، در این کانال می‌گردند:

- https://overthewire.org/wargames/natas
- https://www.root-me.org
- https://www.hackthebox.com

نکته: این لیست به مرور زمان تکمیل می‌گردد!

نکته: هر ساله، مسابقات زیادی در این خصوص، در سراسر دنیا، و با این عنوان برگزار می‌گردد و افراد می‌توانند به صورت فردی و یا گروهی در این مسابقات شرکت نمایند!

ادمین کانال:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍3
📌 عنوان برنامه: برنامه‌ای بنویسید که یک Domain Name را از ورودی (کاربر) گرفته و اطلاعات Whois آن‌را نمایش دهد:

نکته: برای نمایش کاملی از اطلاعات، می‌توانید ابتدا از دامنه google.com استفاده نمایید!

# **********
# pip install python-whois
# https://github.com/richardpenman/whois
# **********
import whois

domain_name = input("What is your domain name: ")
domain_name = domain_name.replace("www.", "")
domain_name = domain_name.replace("https://", "")
domain_name = domain_name.replace("https://", "")
domain_name = domain_name.lower()

try:
whois_information = whois.whois(domain_name)

if not whois_information.domain_name:
print(f"Domain '{domain_name}' is not registered!")
else:
print(f"Domain '{domain_name}' is registered.")

print(f"Email(s): {whois_information.emails}")
print(f"Registrar: {whois_information.registrar}")
print(f"WHOIS Server: {whois_information.whois_server}")
print(f"Domain Name(s): {whois_information.domain_name}")
print(f"Name Server(s): {whois_information.name_servers}")
print()
print(f"Updated Date: {whois_information.updated_date}")
print(f"Creation Date: {whois_information.creation_date}")
print(f"Expiration Date: {whois_information.expiration_date}")
print()
print(whois_information)
except:
print(f"Domain '{domain_name}' is not registered!")
# **********

#SourceCode #SourceCode10032 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
2👍2
[No_Starch_Press]_Gray_Hat_Python.pdf
3 MB
☘️ معرفی کتاب‌های الکترونیکی ☘️

Title: Gray Hat Python
Author: Justin Seitz

Published Date: 2009
Publisher: No Starch Press

Pages: 220
Edition: First
Language: English

Description: Python Programming for Hacker and Reverse Engineers

#Book #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
3👍3
💚 سلام دوستان عزیزم 💚

🛑 برای یک برنامه بسیار ارزشمند و هیجان‌انگیز به زبان پایتون آماده شوید!

فلسفه برنامه شماره سی و سه (۳۳):

زمانی که ما از طریق Wireless LAN Adapter دستگاه‌مان (لپتاب‌مان)، یک دستگاه WIFI Router، در اطراف‌مان را پیدا (شناسایی) کرده و با یک گذرواژه به آن متصل می‌شویم، اطلاعات مربوط به آن WIFI Router، در قالب یک فایل ‌Profile، بر روی دستگاه ما ذخیره می‌گردد، و گذرواژه‌ای که در زمان اتصال، ثبت کرده‌ایم، (متاسفانه) به صورت Plain Text، در همان فایل ذخیره می‌گردد!

حال می‌خواهیم برنامه‌ای بنویسیم، که فهرست تمام اسامی WIFI Profile های ثبت شده بر روی دستگاه ما را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد!

نکته: همانند پروژه‌های قبل نیز، می‌خواهیم این کار را به صورت مرحله به مرحله (در چهار مرحله) انجام داده و در نهایت، به یک کد کامل، با رعایت تمام اصول Clean Code و Best Practice دست پیدا کنیم.

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍43
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله اول

- قدم اول:
در محیط Windows PowerShell دستور ذیل را اجرا کرده و نتیجه آن‌را مشاهده می‌کنیم:

# ********************
netsh wlan show profiles
# ********************

- قدم دوم: حال این دستور را توسط زبان برنامه‌نویسی پایتون اجرا می‌کنیم و نتیجه اجرای این دستور را در متغیری به نام profiles_string ذخیره می‌کنیم:

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)
print(profiles_string)
# ********************

- قدم سوم: با استفاده از دستورات و توابع مربوط به string، سعی می‌کنیم که از این متن، یک لیست ایجاد کنیم که آیتم‌های آن، اسامی WIFI Network ها باشد:

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for wifi_name in wifi_names:
print(f"[{wifi_name}]")
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله دوم

- فرض کنید که نام یکی از WIFI های شما، MobinNet110 باشد.

- قدم اول: در محیط Windows PowerShell دستور ذیل را اجرا کرده و نتیجه آن‌را مشاهده می‌کنیم:

# ********************
netsh wlan show profile name="MobinNet110" key=clear
# ********************

- قدم دوم: حال این دستور را توسط زبان برنامه‌نویسی پایتون اجرا می‌کنیم و نتیجه اجرای این دستور را در متغیری به نام profile_string ذخیره می‌کنیم:

# ********************
import subprocess

wifi_name = "MobinNet110"

command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)
print(profile_string)
# ********************

- قدم سوم: با استفاده از دستورات و توابع مربوط به string، سعی می‌کنیم که از این متن، گذرواژه (password) موجود در متن را استخراج کرده و آن‌را نمایش می‌دهیم:

# ********************
import subprocess

wifi_name = "MobinNet110"

command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{password}]")
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
2👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله سوم

- حال کافی است که کدهای مرحله یک و مرحله دو را در هم ادغام نماییم!

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for wifi_name in wifi_names:
command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{wifi_name}]: [{password}]")
# ********************

نکته: همان‌طور که ملاحظه می‌کنید، برنامه به زیبایی کار می‌کند، ولی خروجی نتایج، از نظر ظاهری و قیافه چندان جذابیت ندارد، لذا در مرحله چهارم (مرحله آخر) یک سری تکنیک‌های حرفه‌ای به این کد اضافه می‌کنیم تا نتایج مورد قبول و پسند ما قرار گیرد!

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍1
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله چهارم (پایانی)

🛑 یک برنامه کاربردی و هیجان‌انگیز با کلی تکنیک‌های حرفه‌ای برنامه‌نویسی!

# ********************
import os, subprocess

os.system(command="cls")

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for index, wifi_name in enumerate(wifi_names):
command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{(index + 1):>2}] - [{wifi_name:<32}]: [{password}]")

print()
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍2
معروف‌ترین سایت‌ها/اپلیکیشن‌هایی که با Python نوشته شده‌اند:

1. Instagram
2. Pinterest
3. Disqus
4. Spotify
5. Dropbox
6. Uber
7. Reddit

📌 منبع:
https://DjangoStars.com

#Site #Statistics

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
4👍2
[No_Starch_Press]_Black_Hat_Python.pdf
4.6 MB
☘️ معرفی کتاب‌های الکترونیکی ☘️

Title: Black Hat Python
Author: Justin Seitz / Tim Arnold

Published Date: 2021
Publisher: No Starch Press

Pages: 188
Edition: Second
Language: English

Description: Python Programming for Hacker and Pentesters

#Book #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
4👍3
Forwarded from 🛑 Iranian Experts 🛑 (𝓓𝓪𝓻𝓲𝓾𝓼𝓱 𝓣𝓪𝓼𝓭𝓲𝓰𝓱𝓲)
معرفی یک سایت فوق‌العاده!
https://www.VirusTotal.com

گاهی اوقات پیش می‌آید که یک فایلی بدست ما رسیده است، که نسبت به ویروسی بودن آن مشکوک هستیم. هر چند که آن‌را توسط Antivirus خودمان، اسکن (Scan) کرده‌ایم و آنتی‌ویروس، هیچ مورد مشکوکی را شناسایی نکرده است! برای این منظور می‌توانیم وارد این سایت شده و فایل خودمان را در این سایت آپلود نموده، تا توسط حداقل ۵۰ موتور/بانک‌اطلاعاتی آنتی‌ویروس دیگر بررسی گردد!

📌 برای دوستانی که در زمینه Ethical Hacking فعالیت می‌کنند، نیز این سایت بسیار مفید می‌باشد! بدین صورت که بعد از نوشتن یک بدافزار بومی، می‌توانند از طریق این سایت، بررسی نمایند که بدافزار نوشته شده، توسط چه آنتی‌ویروس‌هایی ممکن است شناسایی شود! در ضمن، این عزیزان می‌توانند در این سایت ثبت‌نام کرده و بعد از دریافت API Key، از طریق سامانه‌های خود، اقدام به ارسال فایل‌های مشکوک نموده و آن‌ها را بررسی نمایند. البته نسخه رایگان این سایت، محدودیت‌هایی دارد که قابل چشم‌پوشی و اغماض می‌باشد.

#Site #EthicalHacking

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍43
📌 عنوان برنامه: برنامه‌ای بنویسید که به سایت IMDB متصل شده و از اطلاعات درج شده در متن صفحات HTML آن:

۱. فهرست ۲۵۰ فیلم برتر جهان
۲. فهرست تمام فیلم‌هایی که در نام آن‌ها کلمات Star Wars وجود دارد
۳. فهرست ۵۰ سریال برتر که در ژانر علمی / تخیلی می‌باشند
۴. فهرست ۵۰ فیلم برتر که در ژانر علمی / تخیلی می‌باشند

را بدست آورده و به ما نمایش دهد؟

نکته: این برنامه، برای عزیزانی نوشته شده است که هنوز در حوزه زبان برنامه‌نویسی پایتون Junior می‌باشند! در برنامه بعدی از امکانات هیجان‌انگیز زیادی استفاده می‌گردد و برنامه بعدی برای عزیزان Senior مناسب می‌باشد.

نکته: تقریبا تا پایان سال ۲۰۲۲، برای حل این تمرین، کتابخانه‌ای به نام IMDBPY وجود داشت که از ابتدای سال ۲۰۲۳، توسعه‌دهنده این کتابخانه، کتابخانه دیگری به نام Cinemagoer، با امکانات جذاب‌تری توسعه داده است که ما آخرین نسخه آن استفاده می‌کنیم!

نکته: متاسفانه پاسخ شما یک، در بعضی از مواقع کار نمی‌کند! ولی بقیه پاسخ‌ها به درستی کار می‌کنند.

# ********************
# pip install cinemagoer
# https://cinemagoer.github.io/
# https://github.com/cinemagoer/cinemagoer
# ********************
from imdb import Cinemagoer

instance = Cinemagoer()

# 1
movies = instance.get_top250_movies()
# 2
# movies = instance.search_movie(title="Star Wars")
# 3
# movies = instance.get_top50_tv_by_genres(genres="Sci-Fi")
# 4
# movies = instance.get_top50_movies_by_genres(genres="Sci-Fi")

for movie in movies:
print(movie)
# ********************

#SourceCode #SourceCode10034 #Practical #General
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
5👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که به سایت IMDB متصل شده و از اطلاعات درج شده در متن صفحات HTML آن:

۱. فهرست ۲۵۰ فیلم برتر جهان
۲. فهرست تمام فیلم‌هایی که در نام آن‌ها کلمات Star Wars وجود دارد
۳. فهرست ۵۰ سریال برتر که در ژانر علمی / تخیلی می‌باشند
۴. فهرست ۵۰ فیلم برتر که در ژانر علمی / تخیلی می‌باشند

را بدست آورده و به ما نمایش دهد؟

نکته: در این برنامه، می‌خواهیم اطلاعات برحسب سال تولید مرتب شده و در ابتدای هر سطر اطلاعاتی، شماره ردیف نمایش داده شده و در همان سطر، سال تولید، Rating، و مناسب سن بودن نیز نمایش داده شود.

نکته: این برنامه، برای عزیزان Senior نوشته شده است!

نکته: تقریبا تا پایان سال ۲۰۲۲، برای حل این تمرین، کتابخانه‌ای به نام IMDBPY وجود داشت که از سال ۲۰۲۳، توسعه‌دهنده این کتابخانه، کتابخانه دیگری به نام Cinemagoer، با امکانات جذاب‌تری توسعه می‌دهد!

نکته: متاسفانه پاسخ شما یک، بعضی وقت‌ها کار نمی‌کند! ولی بقیه پاسخ‌ها به درستی کار می‌کنند.

# ********************
# pip install cinemagoer
# https://cinemagoer.github.io/
# https://github.com/cinemagoer/cinemagoer
# ********************
from imdb import Cinemagoer

instance = Cinemagoer()

# 1
# movies = instance.get_top250_movies()
# 2
movies = instance.search_movie(title="Star Wars")
# 3
# movies = instance.get_top50_tv_by_genres(genres="Sci-Fi")
# 4
# movies = instance.get_top50_movies_by_genres(genres="Sci-Fi")

movies.sort(key=lambda item: item["year"], reverse=True)

for index, movie in enumerate(movies):
id = movie.movieID

title = movie["title"]

year = movie["year"]

rating = "-"
if "rating" in movie:
rating = movie["rating"]

certificate = "-"
if "certificates" in movie:
certificate = movie["certificates"][0]

message = f"[{index + 1:>2}] {title:<55} Year: {year:<4} Rating: {rating:<3} Certificate: {certificate:<8}"
# message += f" [{id:>8}]"

print(message)
# ********************

#SourceCode #SourceCode10034 #Practical #General
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍53
❤️ سلام دوستان عزیزم ❤️

ضمن عرض سلام و خیر مقدم به یکایک شما عزیزان و بزرگواران، لازم دیدم که به یک نکته در خصوص این کانال اشاره نموده و از شما تقاضایی نمایم:

🔴 متاسفانه اکثر Source Code های موجود در اینترنت، دوره‌های آموزشی، داخلی یا خارجی و غیره، معمولا در کمال شلختگی نوشته شده، فلسفه Source Code ها بعضا مطرح نگردیده، کدها قدیمی و یا بلااستفاده و غیره می‌باشند!

🟢 ولی در این کانال، تمام Source Code ها، در کمال دقت، وسواس و با رعایت تمام تکنیک‌های مربوط به Clean Code, Beatiful Code, Best Practice نوشته می‌شوند و صرفا یک Copy / Paste ساده نخواهد بود! لذا از شما عزیزان، صمیمانه تقاضا می‌گردد، در صورتی که در متون و یا Source Code ها، ایراد و یا اشکالی مشاهده نمودید، آن‌را به اینجانب اعلام نموده تا ضمن آن‌که در اسرع وقت، نسبت به اصلاح آن‌ها اقدام نماییم، نام شما در همان مطلب درج خواهد گردید و از حسن نظر و دقت و توجه شما، کمال تقدیر و تشکر به عمل خواهد آمد. 👌

با تشکر و احترام
داریوش تصدیقی 🙏

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍6
🔴 Learning Main Guard Pattern in Python!

❤️ سلام دوستان عزیزم، انشاءالله در خصوص مفهوم Main Guard و فلسفه آن در زبان برنامه‌نویسی پایتون، در دوره آموزش جامع پایتون، توضیحات مفصلی خواهم داد! ولی تا قبل از آن لازم دیدم که به شما عزیزان تذکر دهم که برای نوشتن برنامه‌های پایتون، مثلا برای چاپ ساده عبارت Hello, World و غیره، به جای نوشتن دستور ذیل:

# ********************
print("Hello, World!")
# ********************

باید (بهتر است) از دستورات (روش) ذیل استفاده نمایید:

# ********************
def main():
print("Hello, World!")

if __name__ == "main":
main()
# ********************

📌 تذکر: در تمام سورس‌کدهایی که تاکنون در این کانال نوشته شده و یا نوشته خواهند شد، به دلیل آن‌که حجم سورس‌کدها زیاد نشود، از این الگوی برنامه‌نویسی استفاده نخواهیم کرد، ولی شما باید در پروژه‌های خود حتما از این الگو استفاده نمایید!

#BestPractice

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
Media is too big
VIEW IN TELEGRAM
🔴 بخشی از دوره حضوری پایتون برای نوجوانان در موسسه آموزشی سماتک

نکته:
دوره بسیار جذاب و هیجان‌انگیزی بود، ۲۴ نوجوان و جوان مستعد، باهوش و با انگیزه، که همگی توانستند با موفقیت این دوره را سپری کرده و نمره خوبی دریافت نمایند...

نکته: علاقه، تلاش و پشت‌کار این عزیزان، به حدی مرا به وجد آورده و هیجان‌زده کرد که تصمیم گرفتم این کانال پایتون را راه‌اندازی نمایم...

#Movie

🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍6