Уведомления

Группа в Telegram: @pythonsu

#1 Июль 6, 2023 12:55:06

MAVR
Зарегистрирован: 2023-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

Доброго времени!
Вместо вступления :
Python3.
Задаем диапазон IP-адресов для сканирования, перебираем IP-адреса в заданном диапазоне, пытаемся подключиться к серверу по указанным портам, получаем версию программы, Если версия программы устарела предлагаем обновить.

Сам код:

 import socket
# Задаем диапазон IP-адресов для сканирования
start_ip = input("Введите начальный IP-адрес: ")
end_ip = input("Введите конечный IP-адрес: ")
# Переводим IP-адреса в числовой формат
start_ip = socket.inet_aton(start_ip)
end_ip = socket.inet_aton(end_ip)
# Перебираем IP-адреса в заданном диапазоне
while start_ip <= end_ip:
    # Преобразуем числовой IP-адрес обратно в строку
    current_ip = socket.inet_ntoa(start_ip)
    # Пытаемся подключиться к серверу по указанным портам
    for port in range(1540, 1595):  # Проверяем порты от 1 до 1024
        try:
            # Создаем сокет и подключаемся к серверу
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.settimeout(0.5)  # Устанавливаем таймаут на подключение к серверу
            result = s.connect_ex((current_ip, port))
            # Если подключение успешно, получаем версию программы
            if result == 0:
                version = s.recv(1024).decode("utf-8").strip()
                # Если версия программы устарела, предлагаем обновить
                if version < "8.3.22.1851":
                    print(f"Обнаружена устаревшая версия программы на сервере {current_ip}:{port}.")
                    print("Рекомендуется обновить программу.")
                # Закрываем соединение
                s.close()
        except (socket.error, socket.timeout):
            pass
    # Увеличиваем IP-адрес для следующей итерации
    start_ip = socket.inet_aton(socket.inet_ntoa(start_ip)) + 1

На выходе получаю такую ошибку.
Подскажите куда копать, сам я новичок еще в Python.
Благодарен буду за любую подсказку.

 Введите начальный IP-адрес: 10.15.10.1
Введите конечный IP-адрес: 10.15.10.120
Traceback (most recent call last):
  File "E:\Pyton\temp\Sc1cv1.py", line 40, in <module>
    start_ip = socket.inet_aton(socket.inet_ntoa(start_ip)) + 1
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
TypeError: can't concat int to bytes
Process finished with exit code 1

Отредактировано MAVR (Июль 6, 2023 12:56:13)

Офлайн

#2 Июль 6, 2023 18:29:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

MAVR
На выходе получаю такую ошибку.
Подскажите куда копать, сам я новичок еще в Python.
Благодарен буду за любую подсказку.
  
>>> b'\x00' + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't concat int to bytes
>>>
Используй bytearray() для внесения изменений
  
>>> b = bytearray(b'\x01\x02\x03\x04')
>>> b
bytearray(b'\x01\x02\x03\x04')
>>> 
>>> b[-1] += 1
>>> b
bytearray(b'\x01\x02\x03\x05')
>>> 
>>> b[3] += 2
>>> b
bytearray(b'\x01\x02\x03\x07')
>>> 
>>> import socket
>>> 
>>> socket.inet_ntoa(b)
'1.2.3.7'
>>>



Офлайн

#3 Июль 6, 2023 18:37:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

MAVR
Задаем диапазон IP-адресов для сканирования, перебираем IP-адреса в заданном диапазоне, пытаемся подключиться к серверу по указанным портам, получаем версию программы, Если версия программы устарела предлагаем обновить.
Довольно хреновасто это смотрится всё. Куча комментариев тебе потребовалось делать, чтобы просто не запутаться в собственной программе. А ведь комментариев вообще быть не должно ни одного и при этом должно быть всё понятно в коде.
Здесь писал, как учиться программировать.



Отредактировано py.user.next (Июль 6, 2023 18:48:45)

Офлайн

#4 Июль 7, 2023 21:03:53

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1348
Репутация: +  118  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

py.user.next
Куча комментариев тебе потребовалось делать

так пишет gpt chat, он код приводит с объяснением
автор все равно не понимает что к чему там, поэтому вариантов у него немного, либо учить все по хорошему, либо просить gpt, чтобы он исправлял свои ошибки

Отредактировано xam1816 (Июль 7, 2023 21:05:20)

Офлайн

#5 Июль 8, 2023 12:50:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

xam1816
так пишет gpt chat, он код приводит с объяснением
Имеешь в виду вот эти нескладушки?
MAVR
  
for port in range(1540, 1595):  # Проверяем порты от 1 до 1024
Да так все пишут новички. Масло масляное. Комментируют то, что и так понятно из кода, и не комментируют то, что действительно требует комментариев - причины, цели, задачи фрагментов.

xam1816
поэтому вариантов у него немного, либо учить все по хорошему, либо просить gpt, чтобы он исправлял свои ошибки
Лучше не тратить своё время на ChatGPT. Это просто хайпотема, у которой есть время жизни. Обычно оно короткое, как у Кликхауса или Нанотехнологий.



Отредактировано py.user.next (Июль 8, 2023 12:50:39)

Офлайн

#6 Июль 13, 2023 19:02:40

MAVR
Зарегистрирован: 2023-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться пожалуйста.

Я уже понял что халявного сыра не бывает)
Спасибо что откликнулись.
Буду

py.user.next
учить все по хорошему

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version