- 论坛徽章:
- 0
|
我想测试到一个ip的连接,看能够ssh过去,以前都是用
s.connect(hostname,port,username,password)
现在我想用s.connect('m[0]','m[1]','m[2]','m[3]')这样的方式(如下代码),我前边截取了字符串
m[0]='hostname="10.1.1.1"'
m[1]='port=22'
m[2]='username=test'
m[3]='111'
但总是报告说hostname="10.1.1.1" : is NOT online!,是执行了print m[0],":","is NOT online!"
如何才能执行s.connect('m[0]','m[1]','m[2]','m[3]')呢?
def exe_ssh():
function_result=1
s=paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
#s.connect(hostname,port,username,password)
s.connect('m[0]','m[1]','m[2]','m[3]')
#print hostname,":","on line!"
print m[0],":","on line!"
except socket.error:
#print hostname,":","is NOT online!"
print m[0],":","is NOT online!"
function_result=0
s.close()
return function_result
file1=open('scd.txt','r')
for eachline in file1.readlines():
m=re.split('\s\s+|\t',eachline.strip())
#print m[0], m[1],m[2],m[3]
hostname=m[0]
port=m[1]
username=m[2]
password=m[3]
print hostname,port,username,password
exe_ssh()
file1.close()
scd.txt内容如下
hostname="10.1.1.1" port=22 username="test" password="111"
hostname="10.1.1.2" port=22 username="test" password="111"
hostname="10.1.1.3" port=22 username="test" password="111"
运行结果如下
10.1.1.1 22 test 1q2w#E$R
Traceback (most recent call last):
File "confirm_network.py", line 58, in ?
exe_ssh()
File "confirm_network.py", line 38, in exe_ssh
s.connect(hostname,port,username,password)
File "/usr/lib/python2.4/site-packages/paramiko/client.py", line 310, in connect
server_hostkey_name = "[%s]:%d" % (hostname, port)
TypeError: int argument required |
|