我是使用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 + "\r\n")
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 + "\r\n")
NameError: global name 'domainname' is not defined
你能帮忙解决这个案子吗?
答案 0 :(得分:3)
您在函数domainname
中使用变量pingfunc()
而未在之前声明它(或将其作为参数传递给函数)。
假设您在调用该函数时已定义domainname
,只需更改函数签名。
更改行:
def pingfunc():
使用:
def pingfunc(domainname):
当你调用该函数时,将domainname
作为参数传递。