我使用ftplib连接到一个数据库,如下所示。
import ftplib
sitename = 'ftp.ensembl.org'
connection = ftplib.FTP(sitename)
connection.login()但是因为我想使用带有参数user@host的ssh,所以我认为我需要服务器的ip地址,而不是ftp站点的url。是否有任何代码来查找和存储的ip地址的ftp服务器在ftplib中
发布于 2015-07-09 03:02:50
对于ssh,您需要使用paramiko:http://www.paramiko.org/
这里:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.open_sftp
最好的尊重
发布于 2015-07-09 04:35:09
主机名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。
或者用谷歌搜索"DNS lookup"。
为了解决您的实际问题:要使用Python中的SSH,您不需要IP地址,而需要SSH库。
在Python最常用的SSH库中,只有Paramiko。
发布于 2015-07-09 05:05:08
在Python中,您可以使用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地址,则通常会记录为IP地址。
https://stackoverflow.com/questions/31301028
复制相似问题