Я написал простой код, в котором хочу, чтобы в переменную
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)
Куда гуглить, чтобы решить проблему ?