使用Python脚本,检测远程服务和端口是否连通,可以用如下代码片断实现
#!/usr/bin/python
# _*_ coding: UTF-8 _*_
import socket
import threading
import time
#服务和端口放在list中
service = ['mixcztdb.erp3.crland.com.cn 1526', 'ztcommon.crland.cn 8081',
'ztshop.crland.cn 80', 'opera.crland.com.cn 80',
'opera.crland.cn 80', 'invest.saas.crland.com.cn 80',
'zt_rediscol1.erp3.crland.com.cn 7001', 'zt_rediscol1.erp3.crland.com.cn 7002',
'zt_rediscol2.erp3.crland.com.cn 7001', 'zt_rediscol2.erp3.crland.com.cn 7002',
'zt_rediscol3.erp3.crland.com.cn 7001', 'zt_rediscol3.erp3.crland.com.cn 7002']
'''
用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 mixcztdb.erp3.crland.com.cn 1526 timed out
connect to zt_rediscol1.erp3.crland.com.cn 7001 timed out