初识NB-IoT的机卡绑定-ICCID、IMEI、IMSI、MSISDN

2023-10-22 12:30

本文主要是介绍初识NB-IoT的机卡绑定-ICCID、IMEI、IMSI、MSISDN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1. 概述
  • 2. 什么是物联网卡
  • 3. 什么是机卡绑定
    • 3.1 ICCID
      • 什么是ICCID - 判断运营商
      • AT指令测试
    • 3.2 IMEI
      • 什么是IMEI
      • AT指令测试
    • 3.3 TAC码
    • 3.4 IMSI
      • 什么是IMSI
      • AT指令测试
      • ICCID和IMSI的区别
  • 参考链接

1. 概述

项目调试期间,出现NB模组注网一直失败。第一次使用移远模组,也没有什么经验。之前功能调试都是ok的呀,刷回历史版本、更换硬件电路板、放到串口测试等,都无法联网。最后移远帮忙看了下,是物联网卡的机卡绑定,查了一些相关资料,记录下来,方便以后查看。

2. 什么是物联网卡

简单理解就是只能联网,不能打电话,专门面向智能设备的SIM卡。这种卡的流量费用一般比较低,其客户多为企业。

对于NB-Iot模组来说,普通SIM卡是不能使用的,必须物联网卡才能正常注网使用。

3. 什么是机卡绑定

意思很容易理解,就是一张SIM只能用于指定的一台设备。若更换设备,则SIM卡无法使用。且运营商后台发现更换了设备,会对物联网卡进行封停。这时想要恢复使用,需要重新提出申请才行。倘若确实有更换设备的需求,必须先申请解绑。

SIM卡具备唯一的ICCID,而通信模组具有唯一的IMEI。只要将ICCID和激活后第一次使用的设备IMEI进行绑定即可。

物联网卡是面向企业销售,不针对个人。那么个人如果学习物联网开发,怎么办呢?先记录下,万能淘宝看看。

3.1 ICCID

什么是ICCID - 判断运营商

ICCID:集成电路卡识别码(Integrate circuit card identity)。
由20位数字组成,是IC卡的唯一识别号码。与SIM卡是绑定关系。
前六位为运营商代码:
中国移动的为:898600;898602;898604;898607 。
中国联通的为:898601;898606;898609。
中国电信的为:898603。
其余的部分没啥有用信息。(点击进入)

2023.9.27更新
898611也是电信(点击进入)

AT指令测试

我使用的通信模组是移远BC20,查询手册AT指令为:
在这里插入图片描述
// 2023.3.30
使用自己的手机卡(联通)进行测试,模组EC200S-EU进行抓取log:

00> AT+QCCID
00> ..
00> +QCCID: 89860121801724568890..
00> ..
00> OK..
00> 01-01 23:50:27 D/at.dev.ec20 tbox_tcp: e0 device SIM ICCID number: 89860121801724568890

898601,正好对应联通

3.2 IMEI

什么是IMEI

IMEI(International Mobile Equipment Identity,移动设备国际识别码,又称为国际移动设备标识)由15位数字组成,是手机的唯一识别号码。
“移动设备国际识别码”名称定义:
1. “移动设备”就是手机,不包括便携式电脑。
2. “国际”这个字眼也表明了它可辨识的范围是全球,即全球范围内IMEI不会重复。
3. “识别”表面了它的作用,是辨识不同的手机;一机一号,类似于人的身份证号。
4. “码”字又说明它是一串编号,常称为手机的“串号”、“电子串号”。

在手机IMEI码规则介绍中提到:

手机IMEI码由15-17位数字组成。
第一部分 TAC,Type Allocation Code,类型分配码,其中前两位又是分配机构标识 (Reporting Body Identifier),01为美国CTIA,35为英国BABT,86为中国TAF。

AT指令测试

IMEI可以在模组丝印直接看到,也可以通过指令获取:
在这里插入图片描述
在这里插入图片描述

// 2023.3.30
使用自己的手机卡(联通)进行测试,模组EC200S-EU进行抓取log:

00> AT+GSN
00> ..
00> 860262052766784..
00> ..
00> OK..
00> ### dis node 8 no resp, no_resp_times = 0, connect_status = 0, t = 14104.
00> 01-01 23:50:13 D/at.dev.ec20 tbox_tcp: e0 device IMEI number: 860262052766784

在AT指令手册有提到AT+CGSN和AT+GSN是相同的。模组的IMEI共15位

3.3 TAC码

在手机IMEI码规则介绍中已经提到,TAC码就是IMEI的前八位数字。
这里只是列下这个概念。因为看到有人说,可以通过申请sim绑定一个项目的整个tac号段(最多10个),用于项目前期调试。
以后有机会真正操作过后再来补充。

TAC更多了解可以参考:PowerPoint Presentation。

3.4 IMSI

什么是IMSI

IMSI:国际移动用户识别号。(International Mobile Subscriber Identification Number)
由15位数字组成,全球唯一ID,用来区别每一位移动用户。与SIM卡是绑定关系。
第一部分:MCC,移动国家代码 (Mobile Country Code)。3位,中国为460。
第二部分:MNC,移动网络代码(Mobile Network Code)。2位,中国移动使用00、02、04、07,中国联通GSM系统使用01、06、09,中国电信CDMA系统使用03、05,电信4G使用11,中国铁通使用20。(百度上是这么说的,可我的移动物联卡是08…啊这 (⊙ˍ⊙) … )
第三部分:MSIN,移动订阅用户识别代码(Mobile subscription identification number)。10位。(点击进入)

AT指令测试

在这里插入图片描述
使用自己的手机卡(联通)进行测试,模组EC200S-EU进行抓取log:

00> AT+CIMI
00> ..
00> 460013163306797..
00> ..
00> OK..

一张SIM卡内,可能有多个IMSI。当持续无法连接网络时,会自动进行切换(可以通过USB的AT Port定时发送,查看返回结果)
每个IMSI表示一个profile,对应使用的运营商?

ICCID和IMSI的区别

一张SIM卡,里面有ICCID,也有IMSI。 ICCID是卡的标识,IMSI是用户的标识。
ICCID只是用来区别SIM卡,不作接入网络的鉴权认证。而IMSI在接入网络的时候,会到运营商的服务器中进行验证。(点击进入)

参考链接

IMSI与MSISDN:根据iccid可以去查MSISDN

这篇关于初识NB-IoT的机卡绑定-ICCID、IMEI、IMSI、MSISDN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261445

相关文章

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

react笔记 8-16 JSX语法 定义数据 数据绑定

1、jsx语法 和vue一样  只能有一个根标签 一行代码写法 return <div>hello world</div> 多行代码返回必须加括号 return (<div><div>hello world</div><div>aaaaaaa</div></div>) 2、定义数据 数据绑定 constructor(){super()this.state={na

docker学习系列(一)初识docker

在第一版本上线之后公司,我们决定将之前使用的开源api文档项目转移到本公司的服务器之上,之前用的是showdoc,showdoc利用的是php技术,作为java程序员表示需要快速部署php环境以及apach容器都需要时间,所以采用第二种方法,即利用docker进行快速部署(虽然学习成本也不比php少)。 一、docker简介 docker的官网是https://www.docker.com,

框架template初识

框架初识 框架就是一个别人帮我们搭好的舞台,造好了很多现成的工具供我们使用,让开发过程更快速、简洁。 Gin框架介绍 Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 Gin是一个用Go语言编写的web框架。它是一个类似于martini 但拥有更好性能的API框架, 由于使用了 httprouter,速度提高了近40倍。 第一个Gin示例 package mai

微信小程序(一)数据流与数据绑定

一、单向数据流和双向数据流 1、单项数据流:指的是我们先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HTML代码,然后把这段HTML代码插入到文档流里面 优点:数据跟踪方便,流向单一,追寻问题比较方便【主要体现:微信小程序】。 缺点:就是写起来不太方便,如果修改UI界面数据需要维护对应的model对象 2、双向数据流:值和UI是双向绑定的,大家都知道,只要UI里面的值发生

使用http-request 属性替代action绑定上传URL

在 Element UI 的 <el-upload> 组件中,如果你需要为上传的 HTTP 请求添加自定义的请求头(例如,为了通过身份验证或满足服务器端的特定要求),你不能直接在 <el-upload> 组件的属性中设置这些请求头。但是,你可以通过 http-request 属性来自定义上传的行为,包括设置请求头。 http-request 属性允许你完全控制上传的行为,包括如何构建请求、发送请