1
我已經嘗試過用各種方法將主機名的變量替換爲socket.connect調用,但我無法使其工作。我正在做替換B/C我想從文件中讀取主機IP列表並連接到它們中的每一個。我有可變格式正確與它周圍的單引號字符串,但它不會連接:用於主機名的Python套接字替換變量
# Connect to the Servers LOOP
with open(sys.argv[2], 'r') as f1:
for server in f1:
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = server.strip('\n')
server = "'%s'" % server
print 'Connecting to ' + server
#connect=s.connect(('10.11.1.229',25))
connect=s.connect((server,25))
# Receive the banner
banner=s.recv(1024)
print banner
s.close
如果我硬編碼的主機名,它工作正常。執行結果:
Connecting to '10.11.1.8'
Traceback (most recent call last):
File "./connect-loop.py", line 19, in <module>
connect=s.connect((server,25))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.gaierror: [Errno -2] Name or service not known
欣賞任何幫助......
刪除單個滴答聲「server =」%s「%server'或雙滴答聲」server ='%s'%server' – dahrens