Задать вопрос
@bot123123
bot

Как передать в sock.connect ip из текстового файла?

Я написал простой код, в котором хочу, чтобы в переменную
connect = sock.connect((ip,port))
а именно в ip - передавалась строка с ip из текстового файла.
Сам код:
import time
import socket

start_time = time.time()

def scan_port(ip,port):
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.settimeout(0.01)
  try:
     print(ip)
     connect = sock.connect((ip,port))
     print(ip + port + ' open.')
     connect.close()
  except Exception as e:

     print(e)

ports = ['443']

for port in ports:
    file_result_ips = open('result_ips.txt', 'r')
    for ip in file_result_ips: 
         scan_port(int(ip.rstrip('\r\n')),port) #убираю перенос строки (.rstrip('\r\n')) и привожу к типу int 
#        scan_port(ip,port)

file_result_ips.close()

print('')
print('%s seconds' % (time.time() - start_time))

Ошибка:
File "test.py", line 24, in <module>
    scan_port(int(ip.rstrip('\r\n')),port)
ValueError: invalid literal for int() with base 10: '185.71.67.88'

Если в функцию scan_port передать ip без каких либо манипуляций , вот так "scan_port(ip,port)", тогда появляется такая ошибка:
185.71.67.88

an integer is required (got type str)
45.60.40.164

an integer is required (got type str)

Куда гуглить, чтобы решить проблему ?
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы