|
| 1 | +import requests |
| 2 | +import sys |
| 3 | +import os |
| 4 | +import re |
| 5 | +requests.packages.urllib3.disable_warnings() |
| 6 | + |
| 7 | +def escape(_str): |
| 8 | + _str = _str.replace("&", "&") |
| 9 | + _str = _str.replace("<", "<") |
| 10 | + _str = _str.replace(">", ">") |
| 11 | + _str = _str.replace(""", "\"") |
| 12 | + return _str |
| 13 | + |
| 14 | +def get_version(url): |
| 15 | + |
| 16 | + def getValue(sResponse, sTag = "vendor"): |
| 17 | + try: |
| 18 | + return sResponse.split("<" + sTag + ">")[1].split("</" + sTag + ">")[0] |
| 19 | + except: |
| 20 | + pass |
| 21 | + return "" |
| 22 | + |
| 23 | + headers = { |
| 24 | + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" |
| 25 | + } |
| 26 | + |
| 27 | + url1 = "https://" + url + "/suite-api/docs/wadl.xml" |
| 28 | + res = requests.get(url1, verify = False) |
| 29 | + if res.status_code == 200: |
| 30 | + pattern_data = re.compile(r"getCurrentVersionOfServer(.*?)</ns2:doc>", re.MULTILINE|re.DOTALL) |
| 31 | + versiondata = pattern_data.findall(escape(res.text)) |
| 32 | + releaseName = getValue(versiondata[0], "ops:releaseName") |
| 33 | + major = getValue(versiondata[0], "ops:major") |
| 34 | + minor = getValue(versiondata[0], "ops:minor") |
| 35 | + minorMinor = getValue(versiondata[0], "ops:minorMinor") |
| 36 | + releasedDate = getValue(versiondata[0], "ops:releasedDate") |
| 37 | + print("[+] Result: ") |
| 38 | + print(" releaseName: " + releaseName) |
| 39 | + print(" major: " + major) |
| 40 | + print(" minorMinor: " + minorMinor) |
| 41 | + print(" releasedDate: " + releasedDate) |
| 42 | + |
| 43 | + else: |
| 44 | + print("[!] Maybe not vRealize Operations Manager") |
| 45 | + print(res.status_code) |
| 46 | + print(res.text) |
| 47 | + |
| 48 | + |
| 49 | +if __name__ == "__main__": |
| 50 | + if len(sys.argv)!=2: |
| 51 | + print('vRealizeOperationsManager_GetVersion') |
| 52 | + print('Use to get the version of vRealize Operations Manager') |
| 53 | + print('Usage:') |
| 54 | + print(' %s <host>'%(sys.argv[0])) |
| 55 | + print('Eg.') |
| 56 | + print(' %s 192.168.1.1'%(sys.argv[0])) |
| 57 | + sys.exit(0) |
| 58 | + else: |
| 59 | + get_version(sys.argv[1]) |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
0 commit comments