diff --git a/codes.csv b/codes.csv new file mode 100644 index 0000000..a8924ea --- /dev/null +++ b/codes.csv @@ -0,0 +1,249 @@ +Afghanistan,AF +Åland Islands,AX +Albania,AL +Algeria,DZ +American Samoa,AS +Andorra,AD +Angola,AO +Anguilla,AI +Antarctica,AQ +Antigua and Barbuda,AG +Argentina,AR +Armenia,AM +Aruba,AW +Australia,AU +Austria,AT +Azerbaijan,AZ +Bahamas,BS +Bahrain,BH +Bangladesh,BD +Barbados,BB +Belarus,BY +Belgium,BE +Belize,BZ +Benin,BJ +Bermuda,BM +Bhutan,BT +Bolivia (Plurinational State of),BO +"Bonaire, Sint Eustatius and Saba",BQ +Bosnia and Herzegovina,BA +Botswana,BW +Bouvet Island,BV +Brazil,BR +British Indian Ocean Territory,IO +Brunei Darussalam,BN +Bulgaria,BG +Burkina Faso,BF +Burundi,BI +Cambodia,KH +Cameroon,CM +Canada,CA +Cabo Verde,CV +Cayman Islands,KY +Central African Republic,CF +Chad,TD +Chile,CL +China,CN +Christmas Island,CX +Cocos (Keeling) Islands,CC +Colombia,CO +Comoros,KM +Congo,CG +Congo (Democratic Republic of the),CD +Cook Islands,CK +Costa Rica,CR +Côte d'Ivoire,CI +Croatia,HR +Cuba,CU +Curaçao,CW +Cyprus,CY +Czech Republic,CZ +Denmark,DK +Djibouti,DJ +Dominica,DM +Dominican Republic,DO +Ecuador,EC +Egypt,EG +El Salvador,SV +Equatorial Guinea,GQ +Eritrea,ER +Estonia,EE +Ethiopia,ET +Falkland Islands (Malvinas),FK +Faroe Islands,FO +Fiji,FJ +Finland,FI +France,FR +French Guiana,GF +French Polynesia,PF +French Southern Territories,TF +Gabon,GA +Gambia,GM +Georgia,GE +Germany,DE +Ghana,GH +Gibraltar,GI +Greece,GR +Greenland,GL +Grenada,GD +Guadeloupe,GP +Guam,GU +Guatemala,GT +Guernsey,GG +Guinea,GN +Guinea-Bissau,GW +Guyana,GY +Haiti,HT +Heard Island and McDonald Islands,HM +Holy See,VA +Honduras,HN +Hong Kong,HK +Hungary,HU +Iceland,IS +India,IN +Indonesia,ID +Iran (Islamic Republic of),IR +Iraq,IQ +Ireland,IE +Isle of Man,IM +Israel,IL +Italy,IT +Jamaica,JM +Japan,JP +Jersey,JE +Jordan,JO +Kazakhstan,KZ +Kenya,KE +Kiribati,KI +Korea (Democratic People's Republic of),KP +Korea (Republic of),KR +Kuwait,KW +Kyrgyzstan,KG +Lao People's Democratic Republic,LA +Latvia,LV +Lebanon,LB +Lesotho,LS +Liberia,LR +Libya,LY +Liechtenstein,LI +Lithuania,LT +Luxembourg,LU +Macao,MO +Macedonia (the former Yugoslav Republic of),MK +Madagascar,MG +Malawi,MW +Malaysia,MY +Maldives,MV +Mali,ML +Malta,MT +Marshall Islands,MH +Martinique,MQ +Mauritania,MR +Mauritius,MU +Mayotte,YT +Mexico,MX +Micronesia (Federated States of),FM +Moldova (Republic of),MD +Monaco,MC +Mongolia,MN +Montenegro,ME +Montserrat,MS +Morocco,MA +Mozambique,MZ +Myanmar,MM +Namibia,NA +Nauru,NR +Nepal,NP +Netherlands,NL +New Caledonia,NC +New Zealand,NZ +Nicaragua,NI +Niger,NE +Nigeria,NG +Niue,NU +Norfolk Island,NF +Northern Mariana Islands,MP +Norway,NO +Oman,OM +Pakistan,PK +Palau,PW +"Palestine, State of",PS +Panama,PA +Papua New Guinea,PG +Paraguay,PY +Peru,PE +Philippines,PH +Pitcairn,PN +Poland,PL +Portugal,PT +Puerto Rico,PR +Qatar,QA +Réunion,RE +Romania,RO +Russian Federation,RU +Rwanda,RW +Saint Barthélemy,BL +"Saint Helena, Ascension and Tristan da Cunha",SH +Saint Kitts and Nevis,KN +Saint Lucia,LC +Saint Martin (French part),MF +Saint Pierre and Miquelon,PM +Saint Vincent and the Grenadines,VC +Samoa,WS +San Marino,SM +Sao Tome and Principe,ST +Saudi Arabia,SA +Senegal,SN +Serbia,RS +Seychelles,SC +Sierra Leone,SL +Singapore,SG +Sint Maarten (Dutch part),SX +Slovakia,SK +Slovenia,SI +Solomon Islands,SB +Somalia,SO +South Africa,ZA +South Georgia and the South Sandwich Islands,GS +South Sudan,SS +Spain,ES +Sri Lanka,LK +Sudan,SD +Suriname,SR +Svalbard and Jan Mayen,SJ +Swaziland,SZ +Sweden,SE +Switzerland,CH +Syrian Arab Republic,SY +"Taiwan, Province of China",TW +Tajikistan,TJ +"Tanzania, United Republic of",TZ +Thailand,TH +Timor-Leste,TL +Togo,TG +Tokelau,TK +Tonga,TO +Trinidad and Tobago,TT +Tunisia,TN +Turkey,TR +Turkmenistan,TM +Turks and Caicos Islands,TC +Tuvalu,TV +Uganda,UG +Ukraine,UA +United Arab Emirates,AE +United Kingdom of Great Britain and Northern Ireland,GB +United States of America,US +United States Minor Outlying Islands,UM +Uruguay,UY +Uzbekistan,UZ +Vanuatu,VU +Venezuela (Bolivarian Republic of),VE +Viet Nam,VN +Virgin Islands (British),VG +Virgin Islands (U.S.),VI +Wallis and Futuna,WF +Western Sahara,EH +Yemen,YE +Zambia,ZM +Zimbabwe,ZW diff --git a/config.json b/config.json index 8c068fa..057e9c9 100644 --- a/config.json +++ b/config.json @@ -4,5 +4,6 @@ "colour_attn":"red", "colour_good":"green", "colour_pretty":"cyan", - "colour_default":"reset" + "colour_default":"reset", + "country_codes":"codes.csv" } diff --git a/libs/cc.py b/libs/cc.py new file mode 100755 index 0000000..4c5f021 --- /dev/null +++ b/libs/cc.py @@ -0,0 +1,23 @@ +#!/usr/bin/python2 + +## Country Code Lookup Library +## Import the CSV file for the country codes +def openCSV(filename): + try: + CSVFile = open(filename) + return CSVFile + except Exception as e: + print(e) + +def parseCSV(inputFile): + codeDict = {} + FileContents = inputFile.read() + SepContents = FileContents.split('\n') + #SepContents = FileContents.split(',') + for entry in SepContents: + testentry = entry.split(',') + if len(testentry) == 2: + codeDict[testentry[1]] = testentry[0] + else: + pass + return codeDict diff --git a/libs/cc.pyc b/libs/cc.pyc new file mode 100644 index 0000000..bda30ca Binary files /dev/null and b/libs/cc.pyc differ diff --git a/main.py b/main.py index 1ae4e59..0535690 100755 --- a/main.py +++ b/main.py @@ -11,6 +11,7 @@ from ipwhois.asn import IPASN from pprint import pprint from libs import config from libs import colours as gc +from libs import cc running = 1 prompt = ': ' @@ -18,6 +19,7 @@ indent = '~ ' whoisrecs = ["NotFound", "DomainName", "Registrar", "Status", "UpdatedDate", "CreationDate", "ExpirationDate", "RegistrantName", "RegistrantEmail", "EligibilityName", "EligibilityType", "EligibilityID", "RegistrantID", "NameServer"] #ipData = ["asn_country_code", "asn_description"] ipData = {"asn_country_code":"Country", "asn_description":"Owner"} +CountryDict = cc.parseCSV(cc.openCSV("codes.csv")) # Loaded from the config file jsonData = config.readConf() @@ -28,9 +30,11 @@ colour_attn = gc.getColour(jsonData["colour_attn"]) colour_good = gc.getColour(jsonData["colour_good"]) colour_pretty = gc.getColour(jsonData["colour_pretty"]) colour_default = gc.getColour(jsonData["colour_default"]) - +CSVFile = jsonData["country_codes"] # Endconfig block +CountryDict = cc.parseCSV(cc.openCSV(CSVFile)) + def domainWhois(inData): whoisData = whois.whois(inData).query() return whois.Parser(inData, whoisData[1]).parse() @@ -122,7 +126,10 @@ def lookupIP(inData): #for key,value in results.iteritems(): # print('%s: %s' % (key, value)) for types in ipData: - print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default)) + if types == "asn_country_code": + print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, CountryDict[results[types]], colour_default)) + else: + print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default)) rev_name = reversename.from_address(inData) try: reverseName = str(dns.resolver.query(rev_name, "PTR")[0])