Browse Source

Removed GatherInformationOfIpA.py

Stefan Schmidt 5 years ago
parent
commit
61a4bd4320
1 changed files with 0 additions and 123 deletions
  1. 0 123
      code/ID2TLib/GatherInformationOfIpA.py

+ 0 - 123
code/ID2TLib/GatherInformationOfIpA.py

@@ -1,123 +0,0 @@
-import subprocess
-import os as os
-
-# a function that gathers more information about a given IP Address
-def gatherInformationOfIpA(ipToCheck, keepInformation=False):
-    '''
-    This functin gathers some information of an IP Address, like Organization, Country, Source of Information
-    and the ASN. The command line funciton 'whois' is required
-    :param ipToCheck: String with the IP Address, which is checked output
-    :param keepInformation: true, if the parsed information should be stored in a file
-    '''
-    descr = []
-    country = []
-    source = []
-    autSys = []
-    nothingFound = False
-    descrFound = False
-    countryFound = False
-    sourceFound = False
-    inRange = False
-    originFound = False
-    ripe = False
-
-    # execute 'whois' on the command line and save output to t
-    t = subprocess.run(['whois', ipToCheck], stdout=subprocess.PIPE)
-
-    # save generated output of shell command to a file
-    with open("../../resources/output.txt", "w") as output:
-        output.write(t.stdout.decode('utf-8'))
-
-    # parse information, like Description, Country, Source and if found the ASN
-    with open("../../resources/output.txt", "r", encoding="utf-8", errors='replace') as ripeDb:
-        ipInfos = [line.split() for line in ripeDb if line.strip()]
-
-        # check if IP is from RIPE
-        for i, row in enumerate(ipInfos):
-            if any("RIPE" in s for s in row) or any ("Ripe" in s for s in row):
-                ripe = True
-                break
-
-        if ripe:
-            # parse information about ip
-            for i, row in enumerate(ipInfos):
-                if any("inetnum" in s for s in row) and not inRange:
-                    # check whether ipToCheck is in range of the current found inetnum or NetRange
-                    if ipToCheck >= row[1] and ipToCheck <= row[3]:
-                        inRange = True
-                if any("descr:" in s for s in row) and not descrFound:
-                    descr.extend(ipInfos[i][1:])
-                    descrFound = True
-                    continue
-                if any("country:" in s for s in row) and not countryFound:
-                    country.extend(ipInfos[i][1:])
-                    countryFound = True
-                    continue
-                if any("source:" in s for s in row) and not sourceFound:
-                    source.extend(ipInfos[i][1:])
-                    sourceFound = True
-                    continue
-                if any("origin" in s for s in row) and not originFound:
-                    autSys.extend(row[1:])
-                    originFound = True
-                    continue
-                if inRange and descrFound and countryFound and sourceFound and originFound:
-                    break
-        else:
-            # parse information about ip
-            for i, row in enumerate(ipInfos):
-                if any("inetnum" in s for s in row) or any("NetRange" in s for s in row) and not inRange:
-                    # check whether ipToCheck is in range of the current found inetnum or NetRange
-                    if ipToCheck >= row[1] and ipToCheck <= row[3]:
-                        inRange = True
-                if (any("descr:" in s for s in row) or any("Organization:" in s for s in row)) and not descrFound:
-                    descr.extend(ipInfos[i][1:])
-                    descrFound = True
-                    continue
-                if (any("country:" in s for s in row) or any("Country:" in s for s in row)) and not countryFound:
-                    country.extend(ipInfos[i][1:])
-                    countryFound = True
-                    continue
-                if (any("source:" in s for s in row) or any("Ref:" in s for s in row)) and not sourceFound:
-                    source.extend(ipInfos[i][1:])
-                    sourceFound = True
-                    continue
-                if (any("origin" in s for s in row) or any("OriginAS:" in s for s in row)) and not originFound:
-                    autSys.extend(row[1:])
-                    originFound = True
-                    continue
-                if inRange and descrFound and countryFound and sourceFound and originFound:
-                    break
-
-        if not descrFound and not countryFound and not sourceFound and not originFound and not inRange:
-            nothingFound = True
-
-    # print information (which use of this information is wanted? Output, Returned?)
-    if not nothingFound:
-        print("#############################################")
-        print("More Information about", ipToCheck)
-        print("Description: ", ' '.join(descr) if descr else "unknown")
-        print("Country:     ", ' '.join(country) if country else "unknown")
-        print("Source:      ", ' '.join(source) if source else "unknown")
-        print("AS Number:   ", ' '.join(autSys) if autSys else "unknown")
-        print("#############################################")
-        print("\n")
-    else:
-        print("IP-Address", ipToCheck, "is not assigned by IANA yet\n")
-
-    # in case it should be stored to a file
-    if keepInformation and not nothingFound:
-        with open("../../resources/information.txt", "w") as info:
-            info.write("#############################################\n")
-            info.write("More Information about" + ipToCheck + "\n")
-            info.write("Description: ")
-            info.write(' '.join(descr) + "\n" if descr else "unknown" + "\n")
-            info.write("Country:     ")
-            info.write(' '.join(country) + "\n" if country else "unknown" + "\n")
-            info.write("Source:      ")
-            info.write(' '.join(source) + "\n" if source else "unknown" + "\n")
-            info.write("AS Number:   ")
-            info.write(' '.join(autSys) + "\n" if autSys else "unknown" + "\n")
-            info.write("#############################################\n")
-
-    os.remove("../../resources/output.txt")