IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> telnet批量检查端口是否正常 -> 正文阅读

[系统运维]telnet批量检查端口是否正常

脚本是由os的库popen方法抓到关键字段判断是否是连通,由于telnet这个命令他交互式的,python调用会卡主很久,这个问题是telnet命令未退出导致,有2种方法:

1、这种方法只限于端口开放或未开放

echo "" | telnet ${ip} ${port}

2、当上面的方法出现time out时候,也会卡主很久等待超时,此时加了timeout命令超时就kill进程

# timout_second:超时时间,秒
# host: 域名
# port: 端口
echo -e '\x1dclose\x0d' | timeout --signal=9 {timout_second} telnet {host} {port}

一、本机测试远程端口是否正常脚本:

#!/usr/bin/python3

import socket

#${ip+port},${描述}
ip_prot = '''
0.0.0.0 80,http的80端口
0.0.0.0 443,http的443端口
更多
'''

for i in ip_prot.strip().split('\n'):
    if not i:
        continue
    # print(i)
    ip = i.split(',')[0].split()[0]
    port = int(i.split(',')[0].split()[-1])
    desc = i.split(',')[-1]
    try:
        sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sk.settimeout(5)
        sk.connect((ip, port))
        print('%s [已连通!]' % i)

    except Exception as e:
        print('%s %s' % (i,e))
        #print("%s server port not connect!" % i)
    sk.close()

二、多个机器测试远程端口是否正常脚本:

####案例
#!/usr/bin/python3
import os,sys

# 测试端口源ip处理成对应环境字典
def src_list_ip(src_ip):
    list_ip = []
    for line in src_ip.strip().split('\n'):
        line = line.strip()
        if not line:
            continue
        list_ip.append(line)
    return list_ip


def check(dict_ip,des_ip):
    for k,v in dict_ip.items():
        for i in v:
            #print(i)
            ip= i.split('#')[0]
            Eip = i.split('#')[-1]
            for line in des_ip.strip().split('\n'):
                line = line.strip()
                des_ip_port = line.split(',')[0]
                #desc = line.split(',')[-1]
                cmd = "ssh %s \"echo -e '\x1dclose\x0d' |timeout --signal=9 1 telnet %s\"" % (ip,des_ip_port)
                #print(cmd)
                result=os.popen(cmd).read()

                if 'Escape' in result:
                    msg = 'ip:%s EIP:%s到%s 已连通!!!' % (ip,Eip,line)
                    print(msg)
                else:
                    msg = 'ip:%s EIP:%s到%s 不通!!!' % (ip,Eip,line)
                    print(msg)
                with open(logFile, 'a', encoding='utf-8') as f:
                    f.write('执行命令:'+cmd+'\n'+msg+'\n'+'---------------------------------')


if __name__ == '__main__':
    
    # 0.0.0.0代表本机ip
    # #1.1.1.1代表外网ip,由于本机ip都是内网ip,发来检查的都是公网,所以对应加上去好分辨
    src_dev_ip = '''
    0.0.0.0 #1.1.1.1
    ...
    '''
    src_pre_ip = '''
    0.0.0.0 #1.1.1.1
    ...
    '''

    src_pro_ip = '''
    0.0.0.0 #1.1.1.1
    ...
    '''

    ip_port = '''
    0.0.0.0 80,http的80端口
    ...
    '''
    dev_dict = {'dev': src_list_ip(src_dev_ip)}
    pre_dict = {'pre': src_list_ip(src_pre_ip)}
    pro_dict = {'pro': src_list_ip(src_pro_ip)}
    # print(dev_dict)
    # print(pre_dict)
    # print(pro_dict)
    logFile = '%s.log' % sys.argv[0][:-3]
    if os.path.exists(logFile):
        os.system('rm -fr %s' % logFile)

    print('-------dev开发测试环境端口检测中......-------')
    check(dev_dict, ip_port)
    print('-------pre预生产环境端口检测中......-------')
    check(pre_dict, ip_port)
    print('-------pro生产环境端口检测中......-------')
    check(pro_dict, ip_port)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:50:00  更:2022-04-24 09:53:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:44:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码