php(wap)获取手机号码,WAP获取访客手机号码

news/2024/12/1 0:31:52/

抓取网站访客手机号

我们先了解一下常规移动网络的连接方式

WIFI,手机wifi上网其实电信、联通、移动的移动运营平台没啥事,因为他走的路由器其实是走的传统的有线上网。所以wifi上网默认走的有线,不扣流量,也无法获得号码了

常规三网访问方式中国移动APN:CMWAP(2G) CMNET(3G)

中国电信APN:CTWAP(2G) CTNET(3G)

只有移动网络有效(电信手机、移动、联通),其他方式访问无效

手机访问网站流程,以联通为例,其他都一样

3GNET的访问方式是,网络直连,及把你的手机当做一台PC一样,给你一个独立的通道接入互联网,联通只提供线路,不做服务器中转让你直达ChinaNet然后再中转到目标网站

3GWAP的访问方式是,压缩访问,方式是手机先发出一个访问的请求,由联通的WAP服务器中转站接收到你的请求后,由WAP服务器派出指定请求去访问你的网站,然后获取到数据后,经由WAP中转服务器进行数据压缩后回传到你的手机上。

经过以上分析大家应该都清楚,通过程序抓取WAP网站访客的手机号是完全可以显现的。但并非100%能获取到。

PHP WAP获取访客手机号码

function getPhoneNumber()

{

if (isset($_SERVER['HTTP_X_NETWORK_INFO '])) {

$str1 = $_SERVER['HTTP_X_NETWORK_INFO '];

$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i ', '2 ', $str1);

Return $getstr1;

} elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID '])) {

$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID '];

Return $getstr2;

} elseif (isset($_SERVER['HTTP_X_UP_SUBNO '])) {

$str3 = $_SERVER['HTTP_X_UP_SUBNO '];

$getstr3 = preg_replace('/(.*)(11[d])(.*)/i ', '2 ', $str3);

Return $getstr3;

} elseif (isset($_SERVER['DEVICEID '])) {

Return $_SERVER['DEVICEID '];

} else {

Return false;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

functiongetPhoneNumber()

{

if(isset($_SERVER['HTTP_X_NETWORK_INFO '])){

$str1=$_SERVER['HTTP_X_NETWORK_INFO '];

$getstr1=preg_replace('/(.*,)(11[d])(,.*)/i ','2 ',$str1);

Return$getstr1;

}elseif(isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID '])){

$getstr2=$_SERVER['HTTP_X_UP_CALLING_LINE_ID '];

Return$getstr2;

}elseif(isset($_SERVER['HTTP_X_UP_SUBNO '])){

$str3=$_SERVER['HTTP_X_UP_SUBNO '];

$getstr3=preg_replace('/(.*)(11[d])(.*)/i ','2 ',$str3);

Return$getstr3;

}elseif(isset($_SERVER['DEVICEID '])){

Return$_SERVER['DEVICEID '];

}else{

Returnfalse;

}

}

JAVA

// 如果通信运营商给送的话,一般在Http请求头的x-up-calling-line-id项里

String mobile = request.getHeader("x-up-calling-line-id");   // GPRS

if (mobile == null) {

mobile = request.getHeader("x-up-subno");   // CDMA

}

if (mobile == null) {

mobile = request.getHeader("x-network-info");

}

if (mobile == null) {

mobile = request.getHeader("deviceid");

}

if (mobile == null) {

// 有些wap门户站点跳转过来,手机号码由参数mobile传递过来

mobile = request.getParameter("mobile");

}

if (mobile != null) {

// 某些情况下,手机号码前面会加上中国国际区号86,需要去掉

if (mobile.length() == 13 && mobile.startsWith("86")) {

mobile = mobile.substring(2);

}

// TODO: 现在,程序可以认为用户身份(手机号码)已经确认,免登录(手机上输入账号密码不太容易)

} else {

// TODO: 无法取得手机号码的情况

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

// 如果通信运营商给送的话,一般在Http请求头的x-up-calling-line-id项里

String mobile = request.getHeader("x-up-calling-line-id");   // GPRS

if (mobile == null) {

mobile = request.getHeader("x-up-subno");   // CDMA

}

if (mobile == null) {

mobile = request.getHeader("x-network-info");

}

if (mobile == null) {

mobile = request.getHeader("deviceid");

}

if (mobile == null) {

// 有些wap门户站点跳转过来,手机号码由参数mobile传递过来

mobile = request.getParameter("mobile");

}

if (mobile != null) {

// 某些情况下,手机号码前面会加上中国国际区号86,需要去掉

if (mobile.length() == 13 && mobile.startsWith("86")) {

mobile = mobile.substring(2);

}

// TODO: 现在,程序可以认为用户身份(手机号码)已经确认,免登录(手机上输入账号密码不太容易)

} else {

// TODO: 无法取得手机号码的情况

}

取手机号码常用参数

String   Mobile_GPRS   =   request.getHeader("X-up-calling-line-id");

String   Mobile_CDMA   =   request.getHeader("x-up-subno");

String   Mobile_INFO     =   request.getHeader("x-network-info");

String   Mobile_DEVI     =   request.getHeader("deviceid");

1

2

3

4

String  Mobile_GPRS  =  request.getHeader("X-up-calling-line-id");

String  Mobile_CDMA  =  request.getHeader("x-up-subno");

String  Mobile_INFO    =  request.getHeader("x-network-info");

String  Mobile_DEVI    =  request.getHeader("deviceid");

既然原理和DEMO都有好,其它语言自行扩展就行。


http://www.ppmy.cn/news/579155.html

相关文章

手机wap适配

<meta name"viewport" content"widthdevice-width, initial-scale1.0, minimum-scale0.5, maximum-scale2.0, user-scalableyes" /> wap手机页面自动适应手机屏幕宽度 大 | 中 | 小 2012/08/25 17:51 , mdy Css 重构 , 评论(0) , 阅读(5969) , V…

wap网游php源码,wap 文字游戏

【实例简介】 一款仙侠类文字游戏的php源代码------------------------------------------------------- 【实例截图】 【核心代码】 某wap文字网游源码 ├── web │ ├── class │ │ ├── encode.php │ │ └── player.php │ ├── css │ │ └─…

GitHub 上数百万个存储库可能容易被劫持

GitHub 上数以百万计的企业软件存储库很容易受到重新劫持&#xff0c;这是一种相对简单的软件供应链攻击&#xff0c;威胁行为者将依赖于特定存储库的项目重定向到恶意攻击。 研究人员在本周的一份报告中表示&#xff0c;这个问题与 GitHub 用户或组织更改项目名称或将其所有权…

支付宝手机wap支付对接接口

最近一直在做微信小程序开发&#xff0c;今天突然要开发支付宝手机版支付&#xff0c;突然打开支付宝开发平台&#xff0c;有点懵逼&#xff01;好久不看居然变化了不少&#xff0c;闲话不多说&#xff0c;下面写下对接过程和流程。 1 申请蚂蚁金服支付宝商家服务&#xff0c;…

dede实现手机wap浏览

首先&#xff0c;在模块里安装手机wap浏览&#xff0c;如果本地没有也可以从网上下载&#xff0c;切记要区分编码【gbk,utf8】。下载好直接点安装 就ok了。 然后直接在网址后加/wap.php便可访问手机版本网站&#xff0c;只不过比较丑【ps&#xff1a;相当的丑】 朋友&#xff…

WAP(手机网站)基础知识

1&#xff0e; 什么是WAP&#xff1a;WAP&#xff08;无线通讯协议&#xff09;是在数字移动电话、因特网或其他个人数字助理机&#xff08;PDA&#xff09;、计算机应用之间进行通讯的开放全球标准。现在很多人直接用WAP来代表手机上网。WAP的本质就是INTERNET&#xff0c;而且…

wap模块在手机侧理解(转)

wap模块在手机侧理解由于嵌入式设备多种多样&#xff0c;因此为嵌入设备开发通用产品比pc上复杂&#xff0c;为了提高可移植性&#xff0c;一般都对底层硬件进行抽象&#xff0c;定义一个硬件抽象层hwl&#xff0c;其中定义一系列上层需要的函数接口&#xff0c;上层调用这些函…

printf不一样的玩法

Printf不一样的玩法 ❝ 在使用linux终端命令的时候&#xff0c;我们可以看到像more命令&#xff0c;它的显示方式与一般的字符串不同&#xff0c;是用了反显。同样&#xff0c;linux C下printf还有很多其他不常见的格式化输出形式。本文主要为你盘点这些形式。 ❞ 先看下效果&a…