首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用浏览器检测MSISDN (手机号码)

使用浏览器检测MSISDN (手机号码)
EN

Stack Overflow用户
提问于 2011-12-08 16:53:59
回答 3查看 52.3K关注 0票数 13

除了这个X-header x-up-calling-line-id之外,还有什么header可以用来检测移动用户数量吗?

我想要尽可能多地从所有浏览器检测,以覆盖所有平台的移动设备。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-22 15:37:16

我将给你一个非常相似的问题的完全相同的答案,因为它应该提供一些洞察力,让你了解你试图实现的目标。

获取访问WAP站点的用户的MSISDN的能力取决于许多因素。

首先,用户必须使用移动数据。如果用户在WiFi上,那么您将不会收到此信息。

其次,用户移动网络必须支持在HTTP报头中传递MSISDN。

一些移动网络会在所有请求上发送报头。其他人只有在通过特定的APN时才发送。有些只将该报头发送到特定的IP地址/块。我甚至遇到过将MSISDN作为$_GET变量发送的网络。您需要检查您打算支持的每个网络。

例如,南非的一个特定网络在大约6个月前还在报头中发送MSISDN,现在为了接收报头中的MSISDN,您的服务器地址需要与它们一起列入白名单。

还要记住,标头非常容易被欺骗,除非您被保证是HTTP请求的发起人,否则不应该依赖它,例如在Android应用程序中使用Web视图的情况下-您需要自己采取足够的措施。

考虑到所有这些,下面是你应该寻找的:

查看您的报头中是否有下列任何一项。这根本不是一个完整的MSISDN报头列表,它们只是我在移动开发冒险中遇到的。

  • X-MSISDN
  • X_MSISDN
  • HTTP_X_MSISDN
  • X-UP-CALLING-LINE-ID
  • X_UP_CALLING_LINE_ID
  • HTTP_X_UP_CALLING_LINE_ID
  • X_WAP_NETWORK_CLIENT_MSISDN

我所做的是遍历标头,查找任何匹配项。如果没有找到任何匹配项,我将使用特定于国家的MSISDN正则表达式对这些值再次运行报头,以查看我不知道的键的报头中是否有任何潜在的MSISDN。如果我找到一个潜在的匹配项,我会将该键和数据添加到一个列表中,以便稍后将其添加到我的已知MSISDN标头列表中。

我希望这已经澄清了一些问题。最重要的是要记住,这不是获取MSISDN的可靠方法。

票数 41
EN

Stack Overflow用户

发布于 2011-12-08 17:02:31

老实说,你不会想要这个特性的。假设你访问了几个网站,他们从标题“x-up-calling line-id”中捕获了你的电话号码。这些网站把你的电话号码卖给电话推销员。你想处于这样的境地吗?

技术原因是不同的。Phone number永远不会存储在手机上(通常如此)。SIM卡由IMSI号码标识,并且Home Location Registry (在MSC)包含将IMSI映射到电话号码的条目。所以回答你的问题,这是不可能的。

票数 4
EN

Stack Overflow用户

发布于 2016-05-23 18:49:38

在PHP中使用apache_request_headers()来获取MSISDN。但是,用户的移动网络必须支持在HTTP报头中传递MSISDN。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8428422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档