0
我想寫一個簡單的Python SMTP枚舉腳本,它從文本文件(文件名作爲第二個參數 - sys.argv[2]
提供)讀取用戶名,並檢查它們是否對應SMTP服務器(提供的主機名或IP 。作爲第一個參數 - sys.argv[1]
我發現的東西,是一種密切的,並調整了它一下,像這樣:簡單的Python SMTP枚舉腳本
#!/usr/bin/python
import socket
import sys
users = sys.argv[2]
for line in users:
line = line.strip()
if line!='':
users.append(line)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((sys.argv[1], 25))
fn = s.makefile('rwb')
fn.readline()
fn.write('HELO testing.com \r\n')
fn.flush()
fn.readline()
for user in users:
fn.write('VRFY %s\r\n' % user)
fn.flush()
print '%s: %s' % (user, fn.readline().strip())
fn.write('QUIT\r\n')
fn.flush()
s.close()
然而,當我運行該腳本(例如):
./smtp-vrfy.py 192.168.1.9 users.txt
它導致錯誤:
文件 「./smtp-vrfy.py」,10號線,在 users.append(線) AttributeError的: '海峽' 對象有沒有屬性 '追加'
我在做什麼錯?我該如何解決它?也許有一種更簡單的方法來完成我想要做的事情?
我感謝您的幫助,但我是一個有點困惑 - 你的意思是我的替換第一行代碼如下:'open(users)as f: for line in f: username = line.replace('\ n','') s.send('VRFY'+'us ername'+'\ r \ n') print'用用戶測試:%s'%username' – Cain
@Cain那也可以:) – cdonts
我覺得我快到了,但並不完全。我在上面用了你的建議(最後一段代碼),但是它產生了一個錯誤**文件「./smtp-vrfy.py」,第21行,在 user = [line.strip()for line in f .readlines if line] TypeError:'builtin_function_or_method'對象不可迭代** –
Cain