我需要用Python创建一个脚本,检查SMTP服务器上是否存在用户列表(服务器的IP列表在一个文件中)
这是我运行的脚本,但套接字连接函数中有一个错误:
#!/usr/bin/python
import socket
import sys
import os
with open("smtp_ip.txt", "r") as ip:
for IpTested in ip :
print IpTested
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=s.connect(('IpTested', 25))
banner=s.recv(1024)
print "echec connect"
with open("user.txt","r+") as username:
for user in username:
s.send('VRFY ' + user + '\r\n')
result=s.recv(1024)
print result
s.close()
ip.close()
这就是我的错误:
root@kali:~/smtppython# ./smtpv2.py
Traceback (most recent call last):
File "./smtpv2.py", line 12, in <module>
connect=s.connect(('IpTested', 25))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.gaierror: [Errno -2] Name or service not known
而不是
你应该
因为前者传递的是字符串
'IpTested'
,而不是变量IpTested
而且,你不需要
因为上下文管理器(
with open("smtp_ip.txt", "r") as ip:
)处理它更新:而且,由于
IpTested
是从文件中读取的一行,因此它包含一个换行符-您需要删除它,因此:相关问题 更多 >
编程相关推荐