【问题标题】:Getting the ip address of an ftp server in python在python中获取ftp服务器的IP地址
【发布时间】:2015-07-08 18:39:07
【问题描述】:

我已使用ftplib 连接到数据库,如下所示。

import ftplib
sitename = 'ftp.ensembl.org'
connection = ftplib.FTP(sitename)
connection.login()

但是因为我想使用ssh 和user@host 的参数,我相信我需要服务器的ip 地址而不是ftp 站点的url。是否有任何代码可以在ftplib 中查找和存储 ftp 服务器的 IP 地址?

【问题讨论】:

  • 为什么你不能或不想使用ssh user@ftp.ensembl.org

标签: python ssh ftp ip-address


【解决方案1】:

【讨论】:

    【解决方案2】:

    您可以使用socket 库在 Python 中轻松地将主机名转换为 IP 地址:

    >>> import socket
    >>> socket.gethostbyname('www.microsoft.com')
    '184.85.88.154'
    >>> socket.gethostbyname('ftp.ensembl.org')
    '193.62.203.85'
    

    但是,我怀疑您不需要这样做,因为ssh 和其他实用程序将交替接受主机名或 IP 地址。如果他们只需要 IP 地址,通常会这样记录。

    【讨论】:

      【解决方案3】:

      主机名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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        • 2011-03-08
        • 2013-05-18
        • 2010-09-22
        • 1970-01-01
        • 2016-12-04
        • 1970-01-01
        相关资源
        最近更新 更多