网络 - 测试连接性

问题描述 投票:0回答:2

假设我想查看我的 ftp 服务器是否在线,我该如何在程序中执行此操作。 另外,您认为最简单、侵入性最小的方法是什么。

python network-programming
2个回答
2
投票

就我个人而言,我会首先尝试使用 nmap 来做到这一点,http://nmap.org

nmap $HOSTNAME -p 21

要在 python 中的服务器列表上测试端口 21 (ftp) 可能如下所示:

#!/usr/bin/env python  
from socket import *   

host_list=['localhost', 'stackoverflow.com']

port=21 # (FTP port)

def test_port(ip_address, port, timeout=3):
    s = socket(AF_INET, SOCK_STREAM)
    s.settimeout(timeout)
    result = s.connect_ex((ip_address, port))
    s.close()
    if(result == 0):
        return True
    else:
        return False

for host in host_list:
    if test_port(gethostbyname(host), port):
        print 'Successfully connected to',
    else:
        print 'Failed to connect to',
    print '%s on port %d' % (host, port)

1
投票

连接到 FTP 服务器的端口,查看它是否正在接受连接。

如果您想更进一步,您可以发送一个

ls
命令并检查您是否得到了合理的响应。

如果你想在 Python 中执行此操作,可以使用 ftplib

© www.soinside.com 2019 - 2024. All rights reserved.