h5 WAP页面获取访客手机号码 php代码

抓取网站访客手机号

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

  1. WIFI,手机wifi上网其实电信、联通、移动的移动运营平台没啥事,因为他走的路由器其实是走的传统的有线上网。所以wifi上网默认走的有线,不扣流量,也无法获得号码了
  2. 常规三网访问方式
    1. 中国移动APN:CMWAP(2G) CMNET(3G)
    2. 中国电信APN:CTWAP(2G) CTNET(3G)
  3. 只有移动网络有效(电信手机、移动、联通),其他方式访问无效

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

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;
    }
  }

取手机号码常用参数

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");