You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
سلام، من دانش برنامه نویسی ندارم و این کارو با استفاده از Chat Gpt انجام دادم در نتیجه اگه مشکلی یا باگی داشت از دوستان برنامه نویسی خاهش میکنم رفعش کنند.
ابتدا با استفاده از کد این دوستمون تمام ip هایی که پشت دامنه های ircf هستند استخراج میکنیم که بتونیم ازشون استفاده کنیم.
منتها باز من به وسیله chat gpt یه سری تغییرات توی کد دادم که راحت تر بتونم ازش استفاده کنم این کدیه که من استفاده میکنم :
import socket
import json
# Open json file create name values
with open('domains.json') as f:
data = json.load(f)
prefix = ["mci", "mtn", "mtnx", "mkh", "rtl", "ast", "hwb", "sht", "prs", "mbt", "ask", "rsp", "mcix", "afn", "ztl", "psm", "fnv"]
Name = ["همراه اول", "ایران", "ایرانسل", "مخابرات", "رایتل", "آسیاتک", "های وب", "شاتل", "پارس آنلاین", "مبین نت", "اندیشه سبز", "رسپینا", "همراه", "افرانت", "زیتل", "پیشگامان", "فن آوا"]
# Display tip and create name value for html file
# Since this is for website I disable print command
for n in range(0, 17):
Output = prefix[n] + " = " + Name[n]
# print(Output)
print(" ")
# Extract links and ping them for IP
ips = []
for domain in data['addresses']:
ip_address = socket.gethostbyname(domain)
print(domain + " = " + ip_address)
ips.append(ip_address)
# Store data in html file to show it on website
with open("index.html", 'w') as c:
for n in range(0, 17):
Output = "<br>" + prefix[n] + " = " + Name[n]
c.write(Output)
for ip in ips:
j = ip
c.write("<br>" + j)
# Store data in text file so I can recall it if needed
with open("fixedIPs.txt", 'w') as d:
for ip in ips:
d.write("{}\n".format(ip))
این کد یک فایل به نام fixedIPs.txt تو دایرکتوری خودش ایجاد میکنه که حاوی ip هایی است که پشت دامنه های ircf هستند.
توجه داشته باشید که باید فایل domains.json رو از پیج گیت هاب دوستمون که بالاتر گذاشتم دانلود کنید و به سرور خودتون انتقال بدید، یا اینکه خودتون فایلی شبیه به همون تو سرورتون بسازید و کنار اسکریپتتون قرار بدید.
نکته : شما میتونید با تغییر فایل domains.json دامنه هارو اضافه یا کم یا ترتیبشونو جا به جا کنید.
بعد یه اسکریپت دیگه که اونم chat gpt لطف کرد نوشت رو استفاده میکنیم تا ip های داخل فایل fixedIPs.txt رو ببره داخل دیتابیس مرزبان قرار بده کانفیگ ها با اون ip ها ساخته بشن.
نکته: من چون فقط از Trojan WS استفاده میکنم در نتیجه فایل xray_config.json رو ادیت کردم و تمام اینباند های دیگه رو حذف کردم و فقط تروجان وب ساکت رو نگه داشتم.
همچنین با استفاده از برنامه DB Browser فایل دیتابیس مرزبان رو ادیت کردم و توی تیبل hosts سه تا سطر اول که مربوط به اینباند های vemess و veless و shadowsocks هستند رو حذف کردم و فقط Trojan Inbound رو نگه داشتم.
خب کدی که برای قرار دادن IP ها داخل فایل دیتابیس استفاده میکنم اینه :
import sqlite3
# Set absolute file paths
db_file = '/var/lib/marzban/db.sqlite3'
ips_file = '/var/lib/marzban/ip/fixedIPs.txt'
# Open a connection to the database
conn = sqlite3.connect(db_file)
c = conn.cursor()
# Read the new IP addresses from the file
with open(ips_file, 'r') as f:
new_ips = f.read().splitlines()
# Get the existing IP addresses from the database
c.execute('SELECT id, address FROM hosts')
rows = c.fetchall()
# Update the IP addresses in the database
for i, row in enumerate(rows):
id = row[0]
old_ip = row[1]
if i < len(new_ips):
new_ip = new_ips[i]
c.execute(f"UPDATE hosts SET address = '{new_ip}' WHERE id = {id}")
else:
break
# Commit changes and close the database connection
conn.commit()
conn.close()
من تمام این اسکریپت هارو تو مسیر /var/lib/marzban/ip
استفاده میکنم در نتیجه اگه شما تو دایرکتوری دیگه ای میخاید ازشون استفاده کنید مسیر داخل کد دوم رو تغییر بدید.
در نهایت هم از این ۲تا کرون جاب برای هر ۲ اسکریپت استفاده میکنیم که هر ۵ دقیقه اجرا بشن و ip ها آپدیت بشن.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
سلام، من دانش برنامه نویسی ندارم و این کارو با استفاده از Chat Gpt انجام دادم در نتیجه اگه مشکلی یا باگی داشت از دوستان برنامه نویسی خاهش میکنم رفعش کنند.
ابتدا با استفاده از کد این دوستمون تمام ip هایی که پشت دامنه های ircf هستند استخراج میکنیم که بتونیم ازشون استفاده کنیم.
منتها باز من به وسیله chat gpt یه سری تغییرات توی کد دادم که راحت تر بتونم ازش استفاده کنم این کدیه که من استفاده میکنم :
این کد یک فایل به نام fixedIPs.txt تو دایرکتوری خودش ایجاد میکنه که حاوی ip هایی است که پشت دامنه های ircf هستند.
توجه داشته باشید که باید فایل domains.json رو از پیج گیت هاب دوستمون که بالاتر گذاشتم دانلود کنید و به سرور خودتون انتقال بدید، یا اینکه خودتون فایلی شبیه به همون تو سرورتون بسازید و کنار اسکریپتتون قرار بدید.
نکته : شما میتونید با تغییر فایل domains.json دامنه هارو اضافه یا کم یا ترتیبشونو جا به جا کنید.
بعد یه اسکریپت دیگه که اونم chat gpt لطف کرد نوشت رو استفاده میکنیم تا ip های داخل فایل fixedIPs.txt رو ببره داخل دیتابیس مرزبان قرار بده کانفیگ ها با اون ip ها ساخته بشن.
نکته: من چون فقط از Trojan WS استفاده میکنم در نتیجه فایل xray_config.json رو ادیت کردم و تمام اینباند های دیگه رو حذف کردم و فقط تروجان وب ساکت رو نگه داشتم.
همچنین با استفاده از برنامه DB Browser فایل دیتابیس مرزبان رو ادیت کردم و توی تیبل hosts سه تا سطر اول که مربوط به اینباند های vemess و veless و shadowsocks هستند رو حذف کردم و فقط Trojan Inbound رو نگه داشتم.
خب کدی که برای قرار دادن IP ها داخل فایل دیتابیس استفاده میکنم اینه :
من تمام این اسکریپت هارو تو مسیر
/var/lib/marzban/ip
استفاده میکنم در نتیجه اگه شما تو دایرکتوری دیگه ای میخاید ازشون استفاده کنید مسیر داخل کد دوم رو تغییر بدید.
در نهایت هم از این ۲تا کرون جاب برای هر ۲ اسکریپت استفاده میکنیم که هر ۵ دقیقه اجرا بشن و ip ها آپدیت بشن.
*/5 * * * * cd /var/lib/marzban/ip && /usr/bin/python3 IP_picker.py >> /var/log/logfile.log 2>&1
*/5 * * * * cd /var/lib/marzban/ip && /usr/bin/python3 auto.py >> /var/log/logfile2.log 2>&1
اسکریپت
IP_picker.py
برای گرفتن IPهای پشت دامنه های ircf است و اسکریپتauto.py
برای قرار دادن ip ها داخل فایل دیتابیس.نکته : مسیر اول رو طبق دایرکتوری خودتون که میخاید از اسکریپت ها استفاده کنید تغییر بدید.
Beta Was this translation helpful? Give feedback.
All reactions