Skip to main content

Phonenumber to Country (ISO 3166-1) mapping

Project description

Small project to map an E.164 (international) phone number to the ISO-3166-1 alpha 2 (two letter) country code, associated with that number.

Also provides mapping for E.212 (mobile network codes, mcc+mnc) to the country.

The package has no dependencies, and works on Py2.7+, Py3 and PyPy.

Simple Usage

To simply get a country code from a phone number or mcc, mnc.

>>> from import *
>>> phone_country(45)
>>> phone_country('+1 202-456-1111')
>>> phone_country(14412921234)
>>> network_country(238, 1)

Network names and codes

If you want more detailed information about the networks, such as the operator name use the functions in

>>> from import *
>>> network(238, 1)
('DK', 'TDC Mobil')
>>> country_networks('DK')
[(238, 1, 'TDC Mobil'), (238, 2, 'Telenor'), (238, 3, 'MIGway A/S'),
 (238, 4, 'NextGen Mobile Ltd T/A CardBoardFish'), (238, 6, 'Hi3G'),
 (238, 8, 'Nordisk Mobiltelefon Danmark A/S'), (238, 10, 'TDC Mobil'),
 (238, 43, 'MobiWeb Limited'), (238, 12, 'Lycamobile Denmark'),
 (238, 13, 'Compatel Limited'), (238, 77, 'Tele2'), (238, 20, 'Telia'),
 (238, 66, 'TT-Netvaerket P/S'), (238, 28, 'CoolTEL'),
 (238, 30, 'Interactive Digital Media GmbH')]

More information

If want more information, you can easily use the country code with other python packages such as pycountry.

>>> from import phone_country
>>> import pycountry
>>> phone = '+55 21 3814-2121'
>>> c = pycountry.countries.get(alpha_2=phone_country(phone))
>>> c.official_name
'Federative Republic of Brazil'

This package makes no attempt to understand the various input options for phone numbers, and assumes an international phone number. If you deal in fuzzy inputs, try phonenumbers.

>>> from import phone_country
>>> import phonenumbers
>>> import pycountry
>>> local = phonenumbers.parse("020 8366 1177", "GB")
>>> phonenumbers.format_number(local, phonenumbers.PhoneNumberFormat.E164)
>>> cc = phone_country(str(local.country_code)+str(local.national_number))
>>> uk = pycountry.countries.get(alpha_2=cc)
'United Kingdom'
>>> uk.official_name
'United Kingdom of Great Britain and Northern Ireland'
>>> wh = phonenumbers.parse("0012024561111", "GB")
>>> cc_wh = phone_country(str(wh.country_code)+str(wh.national_number))
>>> cc_wh

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phone-iso3166-0.3.6.tar.gz (39.5 kB view hashes)

Uploaded source

Built Distribution

phone_iso3166-0.3.6-py3-none-any.whl (41.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page