我开发了一个 WAP 应用程序,我想获取访问我的网站的用户的 MSISDN。
我的运营商已将我的 WAP 应用程序列入白名单。
我在几部三星手机上成功获得了 MSISDN,但在诺基亚、黑莓和 iPhone 设备上却没有获得相同的结果。
请建议我获取所有设备的 MSISDN 号码的最佳方法。
获取访问 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-呼叫线路-ID
- X_UP_CALLING_LINE_ID
- HTTP_X_UP_CALLING_LINE_ID
- X_WAP_NETWORK_CLIENT_MSISDN
我所做的就是遍历标题寻找任何匹配项。如果找不到任何匹配项,我会使用特定于国家/地区的 MSISDN 正则表达式针对这些值再次运行标头,以查看标头中是否存在我不知道的键上的任何潜在 MSISDN。如果我找到潜在的匹配项,我会将密钥和数据添加到列表中,稍后我可以查看该列表,以便添加到我的已知 MSISDN 标头列表中。
我希望这已经让我们明白了一些。最重要的是要记住,这不是获取 MSISDN 的可靠方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)