mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
update
This commit is contained in:
@@ -17,10 +17,10 @@ filename =
|
|||||||
threads =
|
threads =
|
||||||
|
|
||||||
# Тип выходного файла
|
# Тип выходного файла
|
||||||
# доступные опции: 'ip' - только "IP" адрес, 'cidr' - "IP/маска", 'win' - "rote add %IP% mask %mask% %gateway%", если значение пусте (по умолчанию) - пользователю будет выведен запрос с подсказкой
|
# доступные опции: 'ip' - только "IP" адрес, 'unix' - "ip rote %IP% mask/%mask% %gateway%", cidr' - "IP/маска", 'win' - "rote add %IP% mask %mask% %gateway%", если значение пусте (по умолчанию) - пользователю будет выведен запрос с подсказкой
|
||||||
filetype =
|
filetype =
|
||||||
|
|
||||||
# адрес шлюза - используется, только если опция "filetype" установлена в 'win' или пользователь выбрал такой формат выходного файла
|
# адрес шлюза - используется для опций "filetype" - 'win', 'unix' или если пользователь указал один из них в интерактивном меню
|
||||||
# если не указан, будет использоваться значение по умолчанию (0.0.0.0)
|
# если не указан, будет использоваться значение по умолчанию (0.0.0.0)
|
||||||
gateway =
|
gateway =
|
||||||
|
|
||||||
71
main.py
71
main.py
@@ -109,37 +109,39 @@ def resolve_domain(resolver, domain, unique_ips_current_service, unique_ips_all_
|
|||||||
|
|
||||||
# Function to read configuration file
|
# Function to read configuration file
|
||||||
def read_config(filename):
|
def read_config(filename):
|
||||||
# Default values
|
|
||||||
default_values = ('', int(20), 'domain-ip-resolve.txt', '', '', '0.0.0.0', '')
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
with open(filename, 'r', encoding='utf-8-sig') as file:
|
with open(filename, 'r', encoding='utf-8-sig') as file:
|
||||||
config.read_file(file)
|
config.read_file(file)
|
||||||
|
|
||||||
if 'DomainMapper' in config:
|
if 'DomainMapper' in config:
|
||||||
domain_mapper_config = config['DomainMapper']
|
config = config['DomainMapper']
|
||||||
|
service = config.get('service') or ''
|
||||||
|
threads = int(config.get('threads') or 20)
|
||||||
|
filename = config.get('filename') or 'domain-ip-resolve.txt'
|
||||||
|
cloudflare = config.get('cloudflare') or ''
|
||||||
|
filetype = config.get('filetype') or ''
|
||||||
|
gateway = config.get('gateway') or '0.0.0.0'
|
||||||
|
run_command = config.get('run') or ''
|
||||||
|
|
||||||
service = domain_mapper_config.get('service', default_values[0]) or ''
|
print("Загружена конфигурация из config.ini.")
|
||||||
threads = int(domain_mapper_config.get('threads', default_values[1])) or int(20)
|
return service, threads, filename, cloudflare, filetype, gateway, run_command
|
||||||
filename = domain_mapper_config.get('filename', default_values[2]) or 'domain-ip-resolve.txt'
|
|
||||||
cloudflare = domain_mapper_config.get('cloudflare', default_values[3]) or ''
|
|
||||||
filetype = domain_mapper_config.get('filetype', default_values[4]) or ''
|
|
||||||
gateway = domain_mapper_config.get('gateway', default_values[5]) or '0.0.0.0'
|
|
||||||
run_command = domain_mapper_config.get('run', default_values[6]) or ''
|
|
||||||
|
|
||||||
return service, threads, filename, cloudflare, filetype, gateway, run_command
|
|
||||||
else:
|
|
||||||
return default_values
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Не найдены значения {e}")
|
print(f"Ошибка загрузки конфигурации: {e}")
|
||||||
return default_values
|
service = ''
|
||||||
|
threads = int(20)
|
||||||
|
filename = 'domain-ip-resolve.txt'
|
||||||
|
cloudflare = ''
|
||||||
|
filetype = ''
|
||||||
|
gateway = '0.0.0.0'
|
||||||
|
run_command = ''
|
||||||
|
|
||||||
|
return service, threads, filename, cloudflare, filetype, gateway, run_command
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Read parameters from the configuration file
|
# Read parameters from the configuration file
|
||||||
service, threads, filename, cloudflare, filetype, gateway, run_command = read_config('config.txt')
|
service, threads, filename, cloudflare, filetype, gateway, run_command = read_config('config.ini')
|
||||||
|
|
||||||
total_resolved_domains = 0
|
total_resolved_domains = 0
|
||||||
selected_services = []
|
selected_services = []
|
||||||
@@ -157,7 +159,7 @@ def main():
|
|||||||
os.system('cls') # Очистить экран
|
os.system('cls') # Очистить экран
|
||||||
else:
|
else:
|
||||||
os.system('clear')
|
os.system('clear')
|
||||||
print("Выберите сервисы:\n")
|
print("\nВыберите сервисы:\n")
|
||||||
print("0 - Отметить все")
|
print("0 - Отметить все")
|
||||||
for idx, (service, url) in enumerate(urls.items(), 1):
|
for idx, (service, url) in enumerate(urls.items(), 1):
|
||||||
checkbox = "[*]" if service in selected_services else "[ ]"
|
checkbox = "[*]" if service in selected_services else "[ ]"
|
||||||
@@ -205,9 +207,10 @@ def main():
|
|||||||
|
|
||||||
# Asking for file format if filetype is not specified in the configuration file
|
# Asking for file format if filetype is not specified in the configuration file
|
||||||
if not filetype:
|
if not filetype:
|
||||||
filetype = input("\nВыберите в каком формате сохранить файл: \n\033[32mwin\033[0m "
|
filetype = input("\nВыберите в каком формате сохранить файл: \n\033[32mwin\033[0m"
|
||||||
"- 'route add %IP% mask %mask% %gateway%', \033[32mcidr\033[0m "
|
" - 'route add %IP% mask %mask% %gateway%', \033[32munix\033[0m"
|
||||||
"- 'IP/mask', \033[32mEnter\033[0m - только IP: ")
|
" - 'ip route %IP%/%mask% %gateway%', \033[32mcidr\033[0m"
|
||||||
|
" - 'IP/mask', \033[32mEnter\033[0m - только IP: ")
|
||||||
if filetype.lower() == 'cidr':
|
if filetype.lower() == 'cidr':
|
||||||
# Handle CIDR format here
|
# Handle CIDR format here
|
||||||
with open(filename, 'r', encoding='utf-8-sig') as file:
|
with open(filename, 'r', encoding='utf-8-sig') as file:
|
||||||
@@ -225,9 +228,22 @@ def main():
|
|||||||
with open(filename, 'w', encoding='utf-8-sig') as file:
|
with open(filename, 'w', encoding='utf-8-sig') as file:
|
||||||
for ip in ips:
|
for ip in ips:
|
||||||
file.write(f"route add {ip.strip()} mask 255.255.255.255 {gateway}\n")
|
file.write(f"route add {ip.strip()} mask 255.255.255.255 {gateway}\n")
|
||||||
|
|
||||||
|
elif filetype.lower() == 'unix':
|
||||||
|
# Handle Unix-like format here
|
||||||
|
gateway_input = input(f"Укажите имя интерфейса или шлюз (\033[32mEnter\033[0m - {gateway}): ")
|
||||||
|
if gateway_input:
|
||||||
|
gateway = gateway_input.strip()
|
||||||
|
with open(filename, 'r', encoding='utf-8-sig') as file:
|
||||||
|
ips = file.readlines()
|
||||||
|
with open(filename, 'w', encoding='utf-8-sig') as file:
|
||||||
|
for ip in ips:
|
||||||
|
file.write(f"ip route {ip.strip()}/32 {gateway}\n")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Handle default IP address format here (no modification needed)
|
# Handle default IP address format here (no modification needed)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
elif filetype.lower() == 'cidr':
|
elif filetype.lower() == 'cidr':
|
||||||
# Handle CIDR format if specified in the configuration file
|
# Handle CIDR format if specified in the configuration file
|
||||||
with open(filename, 'r') as file:
|
with open(filename, 'r') as file:
|
||||||
@@ -235,6 +251,7 @@ def main():
|
|||||||
with open(filename, 'w') as file:
|
with open(filename, 'w') as file:
|
||||||
for ip in ips:
|
for ip in ips:
|
||||||
file.write(f"{ip.strip()}/32\n") # Assuming /32 subnet mask for all IPs
|
file.write(f"{ip.strip()}/32\n") # Assuming /32 subnet mask for all IPs
|
||||||
|
|
||||||
elif filetype.lower() == 'win':
|
elif filetype.lower() == 'win':
|
||||||
# Handle Windows format if specified in the configuration file
|
# Handle Windows format if specified in the configuration file
|
||||||
with open(filename, 'r', encoding='utf-8-sig') as file:
|
with open(filename, 'r', encoding='utf-8-sig') as file:
|
||||||
@@ -243,6 +260,14 @@ def main():
|
|||||||
for ip in ips:
|
for ip in ips:
|
||||||
file.write(f"route add {ip.strip()} mask 255.255.255.255 {gateway}\n")
|
file.write(f"route add {ip.strip()} mask 255.255.255.255 {gateway}\n")
|
||||||
|
|
||||||
|
elif filetype.lower() == 'unix':
|
||||||
|
# Handle Unix-like format if specified in the configuration file
|
||||||
|
with open(filename, 'r', encoding='utf-8-sig') as file:
|
||||||
|
ips = file.readlines()
|
||||||
|
with open(filename, 'w', encoding='utf-8-sig') as file:
|
||||||
|
for ip in ips:
|
||||||
|
file.write(f"ip route {ip.strip()}/32 {gateway}\n")
|
||||||
|
|
||||||
# Executing the command after the program is completed, if it is specified in the configuration file
|
# Executing the command after the program is completed, if it is specified in the configuration file
|
||||||
if run_command is not None and run_command.strip():
|
if run_command is not None and run_command.strip():
|
||||||
print("\nВыполнение команды после завершения программы...")
|
print("\nВыполнение команды после завершения программы...")
|
||||||
|
|||||||
Reference in New Issue
Block a user