创建一个Python脚本,该脚本连接到特定端口(SMTP)上的一系列IP

2024-09-28 13:17:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用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

Tags: inpyimportip服务器脚本列表usr
1条回答
网友
1楼 · 发布于 2024-09-28 13:17:20

而不是

connect=s.connect(('IpTested', 25))

你应该

connect=s.connect((IpTested, 25))

因为前者传递的是字符串'IpTested',而不是变量IpTested

而且,你不需要

ip.close()

因为上下文管理器(with open("smtp_ip.txt", "r") as ip:)处理它

更新:而且,由于IpTested是从文件中读取的一行,因此它包含一个换行符-您需要删除它,因此:

connect = s.connect((IpTested.rstrip(), 25))

相关问题 更多 >

    热门问题