gpt4 book ai didi

python-2.7 - 套接字.gaierror : [Errno -2] Name or service not known No DNS issue

转载 作者:行者123 更新时间:2023-12-05 07:44:35 32 4
gpt4 key购买 nike

我正在尝试通过 Python 学习网络脚本。我正在尝试从文件“Device_List”中提取设备名称,然后通过 ssh 连接到设备,在其上执行命令并打印输出。

当我在文件中使用 IP 地址时,它工作正常,但如果我使用主机名,它就不行了。我在 Ubuntu TrustyMac OSX 上都试过了。

我收到以下错误:

FWIP = socket.gethostbyname(name)
socket.gaierror: [Errno -2] Name or service not known

我能够在两台机器上解析主机名,所以这不是 DNS 问题。此外,如果我从键盘而不是文件输入设备名称,它工作正常。

你能帮我找到问题吗?

我的代码:

import datetime
import paramiko
import socket
import time
import sys
import getpass

with open("Device_List") as dev:
for name in dev:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
Uname = raw_input("Username : ")
Pw = getpass.getpass()
print "Connected to ", name
FWIP = socket.gethostbyname(name)
ssh.connect(FWIP, username=Uname,password=Pw)
remote_conn = ssh.invoke_shell()
remote_conn.send("set cli pager off\n")
sys.stdout.flush()
command = raw_input("Enter Command to run : ")
remote_conn.send(command + "\n")
time.sleep(2)
output = remote_conn.recv(65534)
print output
print "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
print "Moving Onto Next Device..."

print "Device List Over"

最佳答案

当您遍历文本文件中的行时,例如你的

with open("Device_List") as dev:
for name in dev:

默认的 I/O 子系统总是包含 '\n' 行结束符。一个原因是,通过这种方式,您可以知道文本文件何时结束, 不会结束最后一行。

习惯于在不需要时使用(例如)dev.rstrip()

关于python-2.7 - 套接字.gaierror : [Errno -2] Name or service not known No DNS issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727903/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com