2014-03-06 51 views
0

我正在讀取一個從讀取文件生成的列表,並嘗試將每個項目連接到另一個輸入字符串。我可以理解錯誤;我無法用字符串連接列表項。但是,如何將列表中的每個項目轉換爲字符串。我試過​​,但那也沒用。使用字符串連接列表項目

,我發現了以下錯誤:

錯誤

Traceback (most recent call last): 
    File "./attack2.py", line 40, in <module> 
    print subcheck(returned_list, ['--domain']) 
    File "./attack2.py", line 31, in subcheck 
    socket.gethostbyname(sub + domain) 
TypeError: cannot concatenate 'str' and 'list' objects 

CODE

#!/usr/bin/python 

""" 
Description: 

Basic Domain bruteforcer 

Usage: 
    attack2.py (-f <file>) (-d <domain>) [-t 10] [-v] 
    attack2.py -h | --help 

Arguments: 
    -f --file File to read potential Sub-domains from. (Required) 
    -d --domain Domain to bruteforce. (Required) 
Options: 
    -h --help  Show this screen. 
    -p --proxy Proxy address and port. [default: http://127.0.0.1:8080] (Optional) 
    -t --thread Thread count. (Optional) 
    -v --verbose Turn debug on. (Optional) 
""" 
import socket 
from docopt import docopt 


def fread(dwords): 
     flist = open(dwords).readlines() 
     return [s.replace('\n', '.') for s in flist] 

def subcheck(subdomain, domain): 
     for sub in subdomain: 
       socket.gethostbyname(sub + domain) 
     return output 


if __name__ == "__main__": 
     arguments = docopt(__doc__, version='0.1a') 
     print arguments 
     print fread(arguments['--file']) 
     returned_list = fread(arguments['--file']) 
     print subcheck(returned_list, ['--domain']) 

回答

4
print subcheck(returned_list, ['--domain']) 

您是不是要檢索的參數域選項OBJ ECT?

print subcheck(returned_list, arguments['--domain']) 
+0

對不起,我不知道你的意思。我試圖從列表中獲取值(例如:admin。)並將它們與通過域參數傳遞的域名聯繫起來,然後生成'socket.gethostbyname'來檢查拼接列表項和域是否有效。希望有道理 – iNoob

+0

好的。但是要真正將域名傳遞給'subcheck'函數,你必須從'arguments'中取出它。如果你只給了'['--domain']',它就不會知道用戶指定了什麼。 – Kevin

+0

arr ic,好,所以我有2個問題。感謝您指出了這一點。即時通訊現在得到它的參數,並獲得以下錯誤' 回溯(最近呼叫最後): 文件「./attack2.py」,第40行,在 打印子檢查(returned_list,arguments [' - ]) 文件「./attack2.py」,第31行,在子檢查 socket.gethostbyname(sub + domain) socket.gaierror:[Errno -2]名稱或服務未知,所以如果我知道正確的我需要循環子檢查功能中的每個項目? – iNoob