zoukankan      html  css  js  c++  java
  • sshfindip Python版本,通过IP查找~/.ssh/config 主机配置项

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #根据主机ip查找openSSH配置文件~/.ssh/config对应主机配置项
    #自用sshfindip命令python实现版本
    #原始sshfindip为shell脚本实现,参看:/v/bin/sshfindip
    import sys
    import os
    import re
    
    sshConfigFile="~/.ssh/config"
    sshConfigFile=os.path.expanduser(sshConfigFile)
    
    if len(sys.argv)<2 or (len(sys.argv)==2 and (str(sys.argv[1]).lower()=="--help" or str(sys.argv[1]).lower()=="-h")):
    	print("""
    	/v/bin/sshfindip.py
    	使用主机IP或部分IP关键字查找主机配置项信息,查找 ~/.ssh/config 文件内容.
    	注:当用不完全IP关键字匹配时,会输出包含此IP关键字的多台主机信息
    
    Usage:
            sshfindip.py [ipstr]
    Example:
            sshfindip.py 192.168.1.1
    
    	""")
    	sys.exit(0)
    else:
    	ipstr=str(sys.argv[1]).strip()
    
    
    ipstr=ipstr.replace(".",".").replace("-","-")
    foundCount=0
    
    with open(sshConfigFile,"r") as read_f:
    	Tag=False
    	findIp=False
    	allHostInfo=[]
    	HostInfo=[]
    	for num,line in enumerate(read_f.readlines(),1):
    		if Tag==True and re.match(r'[ ]*Host ',line,re.I):
    			Tag=False
    			if findIp==True:
    				allHostInfo.append(HostInfo)
    				findIp=False
    		if Tag==False and re.match(r'Host .*',line,re.I):
    			Tag=True
    			HostInfo=[]
    			HostInfo.append(line)
    			continue
    		if Tag==True:
    			if re.match(r'.*[^#]HostName [ ]*'+ipstr+'.*',line,re.I):
    				findIp=True
    				foundCount+=1
    			HostInfo.append(line)
    
    for Host in allHostInfo:
    	print("".join(Host))
    
    if foundCount>1:
    	print("共找到主机 %s 个"%foundCount)
    
    print("
    sshfind执行完毕;Python版本:%s"%sys.version)
    
    

    本文来自博客园,作者:晴云孤魂,转载请注明原文链接:https://www.cnblogs.com/cnhack/p/14825117.html

  • 相关阅读:
    Dom解析
    几道算法水题
    Bom和Dom编程以及js中prototype的详解
    sqlserver练习
    java框架BeanUtils及路径问题练习
    Java的IO以及线程练习
    在数据库查询时解决大量in 关键字的方法
    SaltStack--配置管理
    SaltStack--远程执行
    SaltStack--快速入门
  • 原文地址:https://www.cnblogs.com/cnhack/p/14825117.html
Copyright © 2011-2022 走看看