Необходимо изменить OS Fingerprint на сервере Ubuntu 20.04 с установленным прокси 3proxy, чтобы соединение определялось как MacOS. Требуется возможность смены на другие ОС из сигнатур nmap и одновременная работа с разными ОС. Примеры реализации для MacOS, Android и Windows. Ожидается инструкция по реализации решения.
Реализовать ответ на почту с помощью python
from variables import *
import imaplib, os, zipfile, openpyxl, time
from email import message_from_bytes
from email.header import decode_header, make_header
from pathlib import Path
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# Папка загрузки архивов
attachment_dir = str(Path.home() / "Downloads")
SYMVOL = ('<:', '"',="" '="" ',="" '\\',="" '|',="" '?',="" '*')="" <="" p="">
file = 'C:/Users/Karapuz/Desktop/ser/163687_BMW_X5_M1_0151_Маланюк Евро.pdf'
# Функция загрузки файлов
def get_attachments(msg):
global myzip
with zipfile.ZipFile(zip_dir +'.zip', 'w') as myzip:
for part in msg.walk():
if part.get_content_maintype()=='multipart':
continue
if part.get('Content-Disposition') is None:
continue
fileName = part.get_filename()
if bool(fileName):
filePath = os.path.join(attachment_dir, str(make_header(decode_header(fileName))))
with open(filePath,'wb') as f:
f.write(part.get_payload(decode=True))
myzip.write(filePath)
os.remove(filePath)
# Если в сообщении нет прикрепленных файлов - архив не будет сохранен
if len(myzip.infolist()) == 0:
os.remove(zip_dir + '.zip')
# Функция поиска Win кода на сервере
def serach_win_code_in_file(_win_code):
import pdfplumber
filename = file
text = ''
pages = []
with pdfplumber.open(filename) as pdf:
for i, page in enumerate(pdf.pages):
text = text+str(page.extract_text())
pages.append(page)
win_code_in_file = text[(text.find('номер кузова:')) + 14 :(text.find('номер кузова:')) + 31]
if _win_code == win_code_in_file : return True
# Функция отправки сообщения пользователю
def send_message_to_user(email_user):
sender = 'ЛОГИН'
password = 'ПАРОЛЬ'
receiver = email_user
message = MIMEMultipart()
# message.add_header('reply-to', '[email protected]')
message['reply-to'] = data['email_from']
message['From'] = sender
message['To'] = receiver
message['Subject'] = 'Довідка'
body = '''Отримайте Вашу довідку'''
message.attach(MIMEText(body, 'plain'))
pdfname = file
binary_pdf = open(pdfname, 'rb')
payload = MIMEBase('application', 'octate-stream', Name=pdfname)
payload.set_payload((binary_pdf).read())
encoders.encode_base64(payload)
payload.add_header('Content-Decomposition', 'attachment', filename=pdfname)
message.attach(payload)
session = smtplib.SMTP('smtp.gmail.com', 587)
session.starttls()
session.login(sender, password)
text = message.as_string()
session.sendmail(sender, receiver, text)
session.quit()
# Подключение к почте
TYPE_OF_EMAIL = 'imap.' + LOGIN[LOGIN.find('@')+1:]
con = imaplib.IMAP4_SSL(TYPE_OF_EMAIL)
con.login(LOGIN, PASSWORD)
count_of_xlsx = 2
while True:
# Загрузка каждого сообщения
for i in range(1, int(con.select(NAME_OF_CATALOG_ON_MAIL)[1][0].decode('utf-8')) + 1):
result, data = con.fetch(f'{i}', '(RFC822)')
raw = message_from_bytes(data[0][1])
from_user = str(make_header(decode_header(raw['FROM'])))
subject_of_mail = str(make_header(decode_header(raw['Subject'])))
# Проверяем название архива на запрещенные для сохранения символы
for elem in SYMVOL:
if elem in subject_of_mail:
subject_of_mail = subject_of_mail.replace(elem, '')
# Объявляем название архива
zip_dir = os.path.join(attachment_dir, str(subject_of_mail))
win_code = False
# Находим WIN-code машины в теме письма
for elem in subject_of_mail.split(' '):
if len(elem) == 17 and (not 'i' 'o' 'q' in elem.lower()) and elem.isalnum():
win_code = elem.upper()
if serach_win_code_in_file(win_code):
get_attachments(raw)
print('Файл сохранен')
send_message_to_user(from_user[from_user.find('<:from_user.find('>')])
print('Сообщение отправлено')
# Работа с базой данных
file_xlsx = openpyxl.load_workbook(filename = 'data.xlsx')
sheet = file_xlsx['data']
if len(myzip.infolist()) != 0:
while sheet.cell(row=count_of_xlsx, column=1).value is not None:
count_of_xlsx += 1
sheet.cell(row=count_of_xlsx, column=1).value = from_user[from_user.find('<:from_user.find('>')]
file_xlsx.save(filename='data.xlsx')
if win_code:
sheet.cell(row=count_of_xlsx, column=2).value = win_code
file_xlsx.save(filename='data.xlsx')
count_of_xlsx += 1
# Присваиваем сообщению флаг для его дальнейшего удаления (IMAP пометит как удаленное)
# con.store(f'{i}', '+FLAGS', '\\Deleted')
print('В базу данных записано')
con.expunge()
print('All done')
file_xlsx.close()
time.sleep(60)
Программа принимает сообщение, обрабатывает его и в ответ отправляет сообщение, вот нужно сделать чтобы ответное сообщение отправлялось именно как ответ на обрабатываемое сообщение а не как отдельное сообщение
Заявки фрилансеров
Похожие заказы
- Системное программированиенет заявокЗакрыт4 года назад
Необходимо разработать функцию для Jitsi Meet, позволяющую создавать подгруппы, аналогично сессионным залам в Zoom. Функция «breakout rooms» должна обеспечивать возможность разделения комнаты на несколько обсуждений с изменяемым числом залов и максимальным количеством участников.
Системное программированиенет заявокЗакрыт4 года назад- $2000
Ищем Back-end разработчика для удаленной работы. Обязанности включают разработку микросервисов, интеграцию с сервисами и взаимодействие с архитектором и менеджером проекта. Необходимы знания одного из языков программирования (JavaScript, Python, Ruby, PHP, Java, C#, C++) и понимание принципов REST API, HTTP, MySQL и работы с git. Условия: свободный график, стабильные выплаты и возможность карьерного роста.
Системное программирование7 заявокЗакрыт4 года назад Требуется разработать ПО под Windows, обеспечивающее фильтрацию HTTPS трафика через локальный прокси. Основные функции включают удаление рекламы из HTML-кода по заданным правилам, обновление до актуальной версии, управление лицензиями через API и установку как стандартного приложения. Обязательное условие — безопасная сделка.
Системное программированиенет заявокЗакрыт4 года назадТребуется разработка скрипта для парсинга сайтов 9gag.com и reddit.com. Собирать данные по 100-500 записей с каждого раздела, с последующим обновлением раз в сутки. Готовый материал должен сохраняться в MySQL БД и включать информацию о источнике, количестве лайков, заголовке, тексте, изображениях/видео и ссылках на посты.
Системное программирование1 исполнительЗавершен4 года назадТребуется фронтенд разработчик для создания web application на основе существующего SDK. Ищем специалиста не ниже уровня Middle с опытом работы с JavaScript и React. Опыт в 3D-сфере будет преимуществом. Заработная плата обсуждаемая.
Системное программирование3 заявкиЗакрыт4 года назадТребуется разработать функционал на Node.js для рандомизации fingerprint в Chrome с использованием Puppeteer или Selenium. Необходимо подменять параметры, такие как часовой пояс, ОС, WebRTC, геолокация, ядро процессора, оперативная память, языки браузера, шрифты, медиа устройства, а также маскировать canvas hash и webgl.
Системное программирование1 заявкаЗакрыт4 года назадТребуется специалист с опытом работы с Logstash, Elastic и Kibana. Задача включает добавление дополнительных полей к индексу, модификацию конфигурации Logstash и создание пошаговой инструкции по установке. Оплата почасовая, возможен выход за пределы бюджета. Предпочтительно длительное сотрудничество.
Системное программированиенет заявокЗакрыт4 года назадИщется специалист для интеграции Yubikey в процесс расшифровки раздела /boot (luks1) на Ubuntu 20.04. Необходимо понять возможность использования пароля и Yubikey challenge response для расшифровки. Требуется детальная инструкция по настройке и внедрению решения, учитывая специфику полнодискового шифрования luks2.
Системное программированиенет заявокЗакрыт4 года назадТребуется разработка кода для Arduino Nano с использованием MCP2515 для работы с CAN B шиной автомобиля Mercedes W211. При нажатии кнопок на руле Arduino должен управлять Bluetooth модулем, а также выводить информацию о треке на приборную панель через CAN. Нужна адаптация существующих библиотек под конкретные требования проекта.
Системное программирование2 заявкиЗакрыт4 года назад