如何在Python中检查服务器是否正常运行?

8
在PHP中,我只需要执行以下代码:$fp = @fsockopen(irc.myserver.net, 6667, $errno, $errstr, 2); Python 2.X是否也有类似于PHP的fsockopen()函数?如果没有,我该如何检查端口6667上的服务器是否正常?

@Farhan.K 抱歉,我不是想ping它,我只是想检查一下我是否能够连接到它。 - Drago
1
http://www.php2python.com/wiki/function.fsockopen/ - 谷歌搜索结果中的第一个链接(...) - Łukasz Rogalski
1个回答

15

socket模块可以被用来简单地检查一个端口是否开放。

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('irc.myserver.net', 6667))
if result == 0:
   print "Port is open"
else:
   print "Port is not open"

1
还有一种设置超时的方法吗?我尝试在 result = sock.connect_ex(('irc.myserver.net',6667)) 上面使用 sock.settimeout(5),但似乎不起作用。 - Drago
1
@Drago 是的,但有一个例外,请参见:https://dev59.com/6mct5IYBdhLWcg3wufxb - maggick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接