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

时间:2011-12-08 08:53:59

标签: mobile phone-number msisdn

是否有可用于检测此X-header x-up-calling-line-id以外的移动用户号码的HTTP标头?

我希望尽可能从所有浏览器中检测到所有平台手机。

3 个答案:

答案 0 :(得分:36)

我会给你一个非常相似的问题给出完全相同的答案,因为它应该提供一些你想要实现的目标。

获取访问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的可靠方法。

答案 1 :(得分:4)

老实说,你不会想要这个功能。假设您访问了几个网站,他们从标题“x-up-calling-line-id”中捕获您的电话号码。这些网站将您的电话号码出售给电话推销员。你想在那种情况下吗?

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

答案 2 :(得分:1)

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