Я пытаюсь написать простой сканер портов или "тест telnet" с Python 3 в Windows.
К сожалению, при запуске кода я получаю следующую ошибку.
Выход
C:\Python\Codes>python test.py
Destination IP Address: 127.0.0.1
Port number: 2020
Host 127.0.0.1 port 2020
Traceback (most recent call last):
File "test.py", line 12, in <module>
SCAN_TCP_PORT()
File "test.py", line 9, in SCAN_TCP_PORT
s.connect((DstIP, DstPort))
TypeError: an integer is required (got type str)
C:\Python\Codes>
Я искал в Google и нашел эту ссылку, но это не связано с моей проблемой.
Почему Python дает мне «требуется целое число», хотя этого не должно быть?
Что не так с моим кодом в строке 9? А как исправить?
Ошибка
File "test.py", line 9, in SCAN_TCP_PORT
s.connect((DstIP, DstPort))
TypeError: an integer is required (got type str)
Код
#!/usr/bin/env python
import sys, os, socket
def SCAN_TCP_PORT():
DstIP = input('\nDestination IP Address: ')
DstPort = input('Port number: ')
print ('Host %s port %s' % (DstIP, DstPort))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((DstIP, DstPort))
print("%s is listening on TCP port %s" % (DstIP, DstPort))
SCAN_TCP_PORT()
Я новичок в Python, сэр @DeepSpace, и изучаю его у Google. Могу я узнать, как это сделать? Как узнать, что DstIP - это int, и как его изменить?





Вам необходимо преобразовать значение DstPort как целое число, например, заменив ваш s.connect((DstIP, DstPort)) на s.connect((DstIP, int(DstPort))).
Большое спасибо. Оно работает! Спасибо за помощь. Я обновил свой вопрос, чтобы другие, особенно новички, тоже извлекли уроки из него.
Что ж,
DstIPникак не может бытьint. Вы пробовали конвертироватьDstPortвint?