import csv
import requests


def get_address():
    """
    Given a CSV file, this function returns a list of lists
    where each element (list) in the outer list contains the
    row info from the csv file.
    """
    all_addresses = [requests.get('http://ip.42.pl/raw').text.strip()]
    return all_addresses


def get_geolocation(ip_address):
    """
    Given a list of lists from `get_addresses()`, this function
    returns an updated lists of lists containing the geolocation.
    """
    print("Getting geo information...")
    # update header
    # get geolocation
    for line in all_the_ip_address:
        print("Grabbing geo info")
        r = requests.get('https://freegeoip.net/json/{0}'.format(line))
        print([str(r.json()['country_name']), str(r.json()['city'])])


if __name__ == '__main__':
    all_the_ip_address = get_address()
    get_geolocation(all_the_ip_address)