Определение оператора сотовой связи и региона по номеру мобильного телефона

Предложенный скрипт позволяет по номеру мобильного телефона определить регион и оператора сотовой связи.

Вызывать скрипт необходимо следующим образом:

./check_oper_id.py PHONENUMBER

Здесь PHONENUMBER – десятизначный номер проверяемого мобильного телефона.

В случае успешной проверки результат будет возвращен в виде:

REG=OPCODE

Здесь REG – код региона, OPCODE – код оператора сотовой связи.

#!/usr/bin/python
# -*- coding: utf-8 -*-

__author__ = 'Andrey Smirnov'
__email__ = 'mail@ansmirenov.ru'


import requests
import json
import sys

from requests.auth import HTTPBasicAuth


def check1(phone):
    try:
        res = requests.get('http://mnp.tele2.ru/gateway.php?%s' % phone).json()
        return (int(res['response']['geocode']['code']), int(res['response']['mnc']['code']))
    except:
        return None


def check2(phone):
    try:
        res = requests.get('http://moscow.shop.megafon.ru/get_ajax_page.php?action=getMsisdnInfo&msisdn=7%s' % phone).json()
        return (int(res['region_id']), int(res['operator_id']))
    except:
        return None


def write_log(logname, msg):
    f = open(logname, 'a')
    f.write(msg)
    f.close()


def run(ph):
    c1, c2 = check1(ph), check2(ph)
    log = 'log/check_oper_id/err.log'

    if c1 != c2:
	write_log(log, 'Разный результат проверки')
	return 

    if c1 is None:
	write_log(log, 'Сайты недоступны')
	return 

    print '%d=%d' % c1


run(sys.argv[1])