mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-17 02:48:34 +03:00
pySim-prog: use functions to derive MCC/MNC from IMSI
In case the MCC/MNC are not supplied with a CSV file we cut out the missing values from the IMSI string. Lets use a function to do this and also check the input parameters. Change-Id: I98e5bf8f9ff2a852efb190cc789edf42c5075bf8
This commit is contained in:
@@ -206,3 +206,30 @@ def calculate_luhn(cc):
|
||||
num = map(int, str(cc))
|
||||
check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10
|
||||
return 0 if check_digit == 10 else check_digit
|
||||
|
||||
def mcc_from_imsi(imsi):
|
||||
"""
|
||||
Derive the MCC (Mobile Country Code) from the first three digits of an IMSI
|
||||
"""
|
||||
if imsi == None:
|
||||
return None
|
||||
|
||||
if len(imsi) > 3:
|
||||
return imsi[:3]
|
||||
else:
|
||||
return None
|
||||
|
||||
def mnc_from_imsi(imsi, long=False):
|
||||
"""
|
||||
Derive the MNC (Mobile Country Code) from the 4th to 6th digit of an IMSI
|
||||
"""
|
||||
if imsi == None:
|
||||
return None
|
||||
|
||||
if len(imsi) > 3:
|
||||
if long:
|
||||
return imsi[3:6]
|
||||
else:
|
||||
return imsi[3:5]
|
||||
else:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user