Passive OS Fingerprint смена ОС.Дано Ubuntu 20.04 сервер, на сервере подняты прокси 3proxy.При подключении через прокси с MacOS, OS Fingerprint определяется какLinux 3.11 and never [fuzzy] ()Нужно поменять OS Fingerprint, так что-бы определял соединение как ...
Реализовать ответ на почту с помощью 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» позволяет разделить комнату на сессионные залы в Zoom для обсуждения разных тем. При этом число помещений обсуждения и максимальное количество участников ...
Системное программированиенет заявокЗакрыт4 года назад- $2000
На удаленную работу требуется Back-end разработчик Обязанности: Разрабатывать микросервисы и сопутствующие модели баз данных;Интеграции с различными сервисами и партнерами;Взаимодействие с архитектором проекта и проектным менеджером.Требуемые навыки : 1. Знания одного из ...
Системное программирование7 заявокЗакрыт4 года назад Нужно реализовать ПО под Windows, которое будет выполнять функционал фильтрации HTTPS трафика через локальный прокси. Суть фильтрации будет заключаться в том, чтобы вырезать рекламу из HTML кода, посредством правил, например для CSS: ...
Системное программированиенет заявокЗакрыт4 года назадНеобходимо сделать скрипт/настроить сервер для парсинга сайтов: 9gag.com/funny и пары других разделов reddit.com/r/funny и пары других разделов Сначала парсим по 100-500 записей с каждого раздела. Потом 1 раз в ...
Системное программирование1 исполнительЗавершен4 года назадИщем фронтенд разработчика для создания web application на основании существующего SDK. Требования: - не ниже Middle - опыт работы с 3д сферой будет преимуществом - JavaScript + ...
Системное программирование3 заявкиЗакрыт4 года назадНеобходимо на node.js написать функционал для использование через selenium или puppeteer подмены для всех параметров формирующихся fingerprint для использования chrome браузера, подмена часового пояса, OC, WebRTC, геолокации на основе IP , ядра процессора , оперативная ...
Системное программирование1 заявкаЗакрыт4 года назадТребуется специалист с опытом работы с Logstash, Elastic, Kibana.Задача состоит в добавлении к существующему индеку дополнительных полей и модификация конфига Logstash под эти цели, также создани пошаговой инструкции по установке Logstash, Elastic, Kibana с последующим ...
Системное программированиенет заявокЗакрыт4 года назадДано: Ubuntu 20.04 с полнодисковым luks2 шифрованием, включая /boot (luks1). Делал по этой инструкции: https://mutschler.eu/linux/install-guides/ubuntu-btrfs/ Цель: Понять есть ли вообще возможность расшифровки раздела /boot при старте системы с помощью пароля ...
Системное программированиенет заявокЗакрыт4 года назадЗдравствуйте, Нужен человек, который сможет написать код под ардуино для одного проекта. Дано: Mercedes W211 Arduino nano MCP2515 Bluetooth модуль Необходимый минимум: ...
Системное программирование2 заявкиЗакрыт4 года назад