未定义全局名称为__main__的python telnet函数



我是使用python的新手。我将编写一个简单的telnet程序,但要将其堆叠到位。

telnet.py

def pingfunc():
    global domainname
    host  = "1.1.1.1"
    user  = "user1"
    password = "password2"
    telnet  = telnetlib.Telnet(host)
    telnet.read_until('Username: ', 3)
    telnet.write(user + 'r')
    telnet.read_until('Password: ', 3)
    telnet.write(password + 'r')
    telnet.write("ping " +  domainname + "rn")
    time.sleep(3)
    print telnet.read_very_eager()
if __name__ == "__main__":
    global domainname
    query_string = cgi.parse_qs(os.environ['QUERY_STRING'])
    domainname = query_string.get('domainname', ["www.google.com"])[0]
    count = query_string.get('count', [COUNT])[0]

当我调用函数(pingfunc)时,出现了以下错误:

Traceback (most recent call last):   
File "<string>", line 1, in <module>   
telnet.write("ping " +  domainname + "rn")   
NameError: global name 'domainname' is not defined

你能帮我处理这个案子吗?

您在函数pingfunc()中使用变量domainname,但之前没有声明(或将其作为参数传递给函数)。

假设在调用函数时已经定义了domainname,只需更改函数签名即可。

更改线路:

def pingfunc():

带有:

def pingfunc(domainname):

调用函数时,将domainname作为参数传递。

相关内容

  • 没有找到相关文章

最新更新