Я пытаюсь проверить, выдав список IP-адресов и подключившись к порту 25, если существует команда VRFY root
. это сценарий, который я сделал:
import sys
import socket
socket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
with open('smtp_open.txt', 'r') as f:
for line in f:
print str.format(line)
socket.connect((line, 25))
banner=socket.recv(1024)
print banner
socket.send('VRFY' + ' root' + '\r\n')
result=socket.recv(1024)
print result
socket.close()
и это вывод:
10.11.1.22
220 barry ESMTP Sendmail 8.11.6/8.11.6; Sat, 26 Oct 2019 10:56:33 +0200
250 2.1.5 root <root@barry>
10.11.1.72
Traceback (most recent call last):
File "VRFY_script.py", line 15, in <module>
socket.connect((line, 25))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
File "/usr/lib/python2.7/socket.py", line 174, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
, как вы можете видеть, он работает только для первого ip, когда он дает второй ipв качестве входных данных выводит мне ошибку.