2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126

Ошибка типа данных

24.06.2024, 15:16. Показов 636. Ответов 3

Студворк — интернет-сервис помощи студентам
Появляется ошибка. Как исправить? Нужно, чтобы результат был следующим:
Доменное имя для ('10.62.39.1', '10.62.39.2', '10.62.39.3', '10.62.39.4', '10.62.39.4') как ('WS0620390605', 'WS0620391315', 'WS06939354', 'WS0650351315', 'WS0625481595')

WS............ - это доменные имена компьютеров, которые должны браться с помощью gethostbyaddr

hostname = socket.gethostbyaddr(tuple(iplist))
^^^^^^^^^^^^^^^^^^^^^^^
TypeError: gethostbyaddr() argument 1 must be str, bytes or bytearray, not tuple
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import socket
from PyQt6 import QtCore, QtGui, QtWidgets
import ipaddress
 
# проверка на валидацию IP адресов
def ip_checkv4(self):
        ip1 = self.ui2.lineEdit.text() # 10.62.39.1
        ip2 = self.ui2.lineEdit_2.text() # 10.62.39.5
 
        if(ip1 == "" and ip2 == ""):
            print("Начальный и конечный IP-адреса должны быть введены.")
        elif(ipaddress.ip_address(ip1) and ipaddress.ip_address(ip2)):
            ipaddress1 = ip1.split(".") # ['10', '62', '39', '1']
            ipaddress2 = ip2.split(".") #['10', '62', '39', '5']
            if(ipaddress1[:3] == ipaddress2[:3]): # проверка на совпадение первых трех октетов ['10', '62', '39']['10', '62', '39']
                if(ipaddress1[3] < ipaddress2[3]): # если четвертый октет меньше, то выводим диапазон
                    # hostname = socket.gethostbyaddr(ip1)[0]
                    iplist = []
                    ipcur = ipaddress.ip_address(ip1)
                    while ipcur <= ipaddress.ip_address(ip2):
                        iplist.append(str(ipcur))
                        ipcur += 1
                    hostname = socket.gethostbyaddr(iplist)
                    print(f"Domain names {iplist} as {hostname}")
                else:
                    print("Четвертый октет первого IP адреса должен быть меньше четвертого октета второго IP адреса.")
            else:
                print("Первые три октета IP-адресов не совпадают.")
        else:
            print("Некорректно введены IP адреса.")
Добавлено через 4 часа 1 минуту
Додумался сам, но думаю как-то это не красиво)

Python
1
2
3
4
5
6
7
8
9
iplist = []
hostname = []
ipcur = ipaddress.ip_address(ip1)
while ipcur <= ipaddress.ip_address(ip2):
    iplist.append(str(ipcur))
    ipcur += 1
    addr = socket.gethostbyaddr(str(ipcur))[0]
    hostname.append(addr)
print(f"Domain names {iplist} as {hostname}")
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2024, 15:16
Ответы с готовыми решениями:

Ошибка типа данных при записи SQL запроса в файл
def prepareSQL(): con=odiRef.getJDBCConnection(&quot;SRC&quot;) sql='''select name from test''' sql=sql.decode('cp1251') ...

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных
После того, как делаю фото на мобильном клиенте некоторое время идёт загрузка и вылезает ошибка. В мобильном приложении всё работает как...

Ошибка типа данных?
&lt;?PHP $dir=scandir($_SERVER); $count=count($dir); echo $count; echo...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
24.06.2024, 16:02
Сообщение об ошибке:

TypeError: gethostbyaddr() argument 1 must be str, bytes or bytearray, not tuple

Что дословно означает:

Ошибка типа: gethostbyaddr() первый аргумент должен быть строкой, байтами или байтовым массивом, а не кортежом
1
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
25.06.2024, 14:49  [ТС]
Вот так сейчас выглядит мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def ip_checkv4(self):
        ip1 = "10.62.39.1"
        ip2 = "10.62.39.5"
        if(ip1 == "" and ip2 == ""):
            print("Начальный и конечный IP-адреса должны быть введены.")
        elif(ipaddress.ip_address(ip1) and ipaddress.ip_address(ip2)):
            ipaddress1 = ip1.split(".")
            ipaddress2 = ip2.split(".")
            if(ipaddress1[:3] == ipaddress2[:3]): # проверка на совпадение первых трех октетов
                if(ipaddress1[3] < ipaddress2[3]): # если четвертый октет меньше, то выводим диапазон
                    iplist = []
                    hostname = []
                    ipcur = ipaddress.ip_address(ip1)
                    while ipcur <= ipaddress.ip_address(ip2):
                        iplist.append(str(ipcur))
                        ipcur += 1
                        addr = socket.gethostbyaddr(str(ipcur))[0]
                        hostname.append(addr)
                    print(f"IP-адресу {iplist} соответствует доменное имя {hostname}")
                else:
                    print("Четвертый октет первого IP адреса должен быть меньше четвертого октета второго IP адреса.")
            else:
                print("Первые три октета IP-адресов не совпадают.")
        else:
            print("Некорректно введены IP адреса.")
Вопрос. Если компьютер с IP адресом 10.62.39.4 отсутствует в домене, то появляется ошибка:
Python
1
2
3
addr = socket.gethostbyaddr(str(ipcur))[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.herror: [Errno 11004] host not found
Как мне сделать так, чтобы, если какой-то компьютер не доступен, то выводилось бы сообщение “ПК не доступен”.
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
25.06.2024, 15:29
Цитата Сообщение от atm87 Посмотреть сообщение
Как мне сделать так, чтобы, если какой-то компьютер не доступен, то выводилось бы сообщение “ПК не доступен”.
try - catch
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2024, 15:29
Помогаю со студенческими работами здесь

Ошибка типа данных
Всем привет Выпадающий список... После подтверждения формы на внесение данных у меня не получается занести данные из этого списка...

Ошибка типа данных
Добрый вечер! Такое задание: Ввести с клавиатуры название фигуры, которую надо построить: телевизор или круг. Нарисовать и раскрасить...

Ошибка из-за типа данных
Учусь по книги Троелсена. Скорее всего ошибка из-за невнимательности, но хочется идти дальше. Сейчас работаю с наследованием. В...

Ошибка в указании типа данных
Здравствуйте! Есть простейшая программа, которая записывает данные в файл, которые вводит собсно, юзер. Но вот незадача, паскаль...

Ошибка преобразования типа данных
SELECT LOG.DocumentID, LOG.SystemTime, LOG.Type, LOG.InfoTxt, LOG.Username FROM LOG INNER JOIN REMOTEIDS ON LOG.DocumentID =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru