我已使用ftplib
连接到数据库,如下所示。
import ftplib
sitename = 'ftp.ensembl.org'
connection = ftplib.FTP(sitename)
connection.login()
但是因为我想将ssh
与user @ host的参数一起使用,我相信我需要服务器的ip地址而不是ftp站点的url。是否有任何代码可以在ftplib
内找到并存储ftp服务器的IP地址?
答案 0 :(得分:1)
对于ssh,您需要使用paramiko:http://www.paramiko.org/
这里: http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.open_sftp
最好的考虑
答案 1 :(得分:0)
主机名ftp.ensembl.org
只是IP地址的名称。
在TCP应用程序/库中绝大多数情况下,您可以互换使用主机名和IP地址(HTTP / Web浏览器存在显着差异)。
因此,对于任何Python SSH库,您也可以使用主机名,就像使用ftplib一样。
话虽这么说,要查找IP地址,您可以使用ping
命令:
C:\>ping ftp.ensembl.org
Pinging ftp-ensembl-ext.sanger.ac.uk [193.62.203.85] with 32 bytes of data:
Reply from 193.62.203.85: bytes=32 time=51ms TTL=48
Reply from 193.62.203.85: bytes=32 time=51ms TTL=48
因此,您的FTP服务器的IP地址为193.62.203.85
。
或google for "DNS lookup"。
解决您的实际问题:要使用Python中的SSH,您不需要IP地址,而是需要SSH库。
只有最常用的Python SSH库是Paramiko。
答案 2 :(得分:0)
您可以使用socket
库轻松地将主机名转换为IP地址:
>>> import socket
>>> socket.gethostbyname('www.microsoft.com')
'184.85.88.154'
>>> socket.gethostbyname('ftp.ensembl.org')
'193.62.203.85'
但是,我怀疑您不需要这样做,因为ssh
和其他实用程序可以互换地接受主机名或IP地址。如果它们只需要IP地址,通常会记录在案。