使用Python脚本,检测远程服务和端口是否连通,可以用如下代码片断实现
#!/usr/bin/python
# _*_ coding: UTF-8 _*_
import socket
import threading
import time
#服务和端口放在list中
service = ['mix.er3.csddn.com.cn 1526', 'cw.csddn.cn 8081',
'okshop.csddn.cn 80', 'opera.csddn.com.cn 80',
'opera.csddn.cn 80', 'ok.ssb.csddn.com.cn 80']
'''
用socket连接
'''
def socketconnect(addr, port):
try:
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(2)
sk.connect((addr, int(port)))
# print 'connect to ' + addr + ' ' + port + ' success'
except socket.error, e:
print 'connect to ' + addr + ' ' + port + ' timed out'
sk.close()
'''
取service中的地址和端口
'''
def check():
for every in service:
addr = every.split()
socketconnect(addr[0], addr[1])
'''
main方法
'''
if __name__ == '__main__':
threads = [threading.Thread(target=check())]
map(lambda x: x.start(), threads)
运行结果,输出了不通的服务地址信息
connect to ok.ssb.csddn.com.cn 80 timed out
connect to mix.er3.csddn.com.cn 1526 timed out