PK!vmullvad_python/__init__.py"""TODO: Initialization package.""" from .api import Mullpy from .banner import banner __all__ = ['Mullpy', 'banner'] __version__ = '0.1.0' PK!:OOmullvad_python/api.py"""TODO: api documentation.""" from requests import get as rget class Mullpy(): """Todo: API.""" def __init__(self): """TODO: initialization.""" self.api_data = rget('https://am.i.mullvad.net/json').json() self.ip = self.api_data['ip'] self.country = self.api_data['country'] self.city = self.api_data['city'] self.longitude = self.api_data['longitude'] self.latitude = self.api_data['latitude'] self.exit_ip = self.api_data['mullvad_exit_ip'] if self.exit_ip: self.exit_hostname = self.api_data['mullvad_exit_ip_hostname'] self.organization = self.api_data['organization'] self.server_type = self.api_data['mullvad_server_type'] self.blacklisted = self.api_data['blacklisted'] def is_blacklisted(self): """Return True or False if user is blacklisted.""" is_blacklisted = self.blacklisted['blacklisted'] return is_blacklisted def blacklist_information(self): """Return blacklisted information.""" blacklist_info = self.blacklisted['results'] return blacklist_info def check_port(self, port): """Ony check if port is open.""" req_port = rget(f'https://am.i.mullvad.net/port/{port}').json() is_open = req_port['reachable'] return is_open PK!5mullvad_python/banner.pybanner = r''' \ | | | |\/ | | | | | __ \ | | | | | | | | | | | | _| _| \__,_| _| _| .__/ \__, | _| ____/ ''' PK!c8mullvad_python/cli.py"""TODO: CLI.""" import click import argparse from .api import Mullpy from .banner import banner def main(): """TODO: CLI main.""" mullpy = Mullpy() if mullpy.exit_ip: text_color = 'green' else: text_color = 'red' click.secho(banner, fg=text_color, bold=True) # Using Mullvad's exit IP? print('Using Mullvad:', end='\t') if mullpy.exit_ip: click.secho('True', fg=text_color, bold=True) print('Server Type:', end='\t') click.secho(mullpy.server_type, fg=text_color, bold=True) else: click.secho("FALSE. INSECURE CONNECTION!", fg=text_color, bold=True) # IP Address print('IP Address:', end='\t') click.secho(mullpy.ip, fg=text_color, bold=True) # Country / City print('Country:', end='\t') click.secho(f'{mullpy.city}, {mullpy.country}', fg=text_color, bold=True) # Longitude / Latitude print(f'Location:', end='\t') longitude, latitude = mullpy.longitude, mullpy.latitude click.secho(f'{longitude}, {latitude}', fg=text_color, bold=True) # Organization if mullpy.exit_ip: print('Organization:', end='\t') click.secho(mullpy.organization, fg=text_color, bold=True) # Blacklisted? print('Blacklisted: ', end='\t') if mullpy.is_blacklisted(): click.secho('True', fg='red', bold=True) else: click.secho('False', fg='green', bold=True) print() if __name__ == '__main__': main() PK!H~ 12/mullvad_python-0.1.1.dist-info/entry_points.txtN+I/N.,()-)Qe)%yz9Vy\\PK!HMWX$mullvad_python-0.1.1.dist-info/WHEEL A н#Z@Z|Jl~6蓅 Λ MU4[PYBpYD*Mͯ#ڪ/̚?ݭ'%nPK!Hd R'mullvad_python-0.1.1.dist-info/METADATAn0G-Ztb@lq1sNk'x ^ 3$+R5``_LUAՔJqRx&R9b沩* 8[p}>EM C EM⣫0Ւm>_gha=эg+5`6+1Vʔ,ץk]@i‰iB0 vҫbN]6|xT?P^ V8 |l@pw޽=Lw"\VuP*Q*zbЁAu}O%_5;%=Y!^ [!4D%Z @5 h]#{v*mT1(ڤ8;֑ `SpB¢TDRpͽǕ'(㷝YPYY)C(-R&(Mq}cky -\ ).Y_]U'W bBDѦ_7dQ$mG9lM-;neS;^B`M@Y!~PK!H:%mullvad_python-0.1.1.dist-info/RECORDv0yAA Њ,@~"":q-k]gO58aJ8c ML*]K~ eu'yExiU=;c&3)"4cPތy9BHցu]U|#I9MR:BM?[rǖ#M]42xaMU< MEȁtCR8!xGKFa_{vxK՟W(D"u?PK!vmullvad_python/__init__.pyPK!:OOmullvad_python/api.pyPK!5Gmullvad_python/banner.pyPK!c8Cmullvad_python/cli.pyPK!H~ 12/7 mullvad_python-0.1.1.dist-info/entry_points.txtPK!HMWX$ mullvad_python-0.1.1.dist-info/WHEELPK!Hd R'Nmullvad_python-0.1.1.dist-info/METADATAPK!H:%mullvad_python-0.1.1.dist-info/RECORDPKko