该PHP操作类实现获取手机号
手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 
代码如下:

<?php
/**
* @desc 手机操作类 获取手机相关信息
* @since
*/
class mobile {
/**
* 函数名称: getPhoneNumber
* 函数功能: 取手机号
* 输入参数: none
* 函数返回值: 成功返回号码,失败返回false
* 其它说明: 说明
*/
public function getPhoneNumber() {
if (isset($_SERVER['HTTP_X_NETWORK_INFO'])) {
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i',"",$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',"",$str3);
Return $getstr3;
}
elseif (isset($_SERVER['DEVICEID'])) {
Return $_SERVER['DEVICEID'];
}
else {
Return false;
}
}

/**
* 函数名称: getHttpHeader
* 函数功能: 取头信息
* 输入参数: none
* 函数返回值: 成功返回号码,失败返回false
* 其它说明: 说明
*/
public function getHttpHeader() {
$str = "";
foreach ($_SERVER as $key=>$val) {
$gstr = str_replace("&","&",$val);
$str.= "$key -> ".$gstr."rn";
}
Return $str;
}

/**
* 函数名称: getUA
* 函数功能: 取UA
* 输入参数: none
* 函数返回值: 成功返回号码,失败返回false
* 其它说明: 说明
*/
public function getUA() {
if (isset($_SERVER['HTTP_USER_AGENT'])) {
Return $_SERVER['HTTP_USER_AGENT'];
}
else {
Return false;
}
}

/**
* 函数名称: getPhoneType
* 函数功能: 取得手机类型
* 输入参数: none
* 函数返回值: 成功返回string,失败返回false
* 其它说明: 说明
*/
public function getPhoneType() {
$ua = $this->getUA();
if($ua!=false) {
$str = explode(" ",$ua);
Return $str[0];
}
else {
Return false;
}
}

/**
* 函数名称: isOpera
* 函数功能: 判断是否是opera
* 输入参数: none www.knowsky.com
* 函数返回值: 成功返回string,失败返回false
* 其它说明: 说明
*/
public function isOpera() {
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo)) {
Return true;
}
else {
Return false;
}
}

/**
* 函数名称: isM3gate
* 函数功能: 判断是否是m3gate
* 输入参数: none
* 函数返回值: 成功返回string,失败返回false
* 其它说明: 说明
*/
public function isM3gate() {
$uainfo = $this->getUA();
if (preg_match('/M3Gate/i',$uainfo)) {
Return true;
}
else {
Return false;
}
}

/**
* 函数名称: getHttpAccept
* 函数功能: 取得HA
* 输入参数: none
* 函数返回值: 成功返回string,失败返回false
* 其它说明: 说明
*/
public function getHttpAccept() {
if (isset($_SERVER['HTTP_ACCEPT'])) {
Return $_SERVER['HTTP_ACCEPT'];
}
else {
Return false;
}
}

/**
* 函数名称: getIP
* 函数功能: 取得手机IP
* 输入参数: none
* 函数返回值: 成功返回string
* 其它说明: 说明
*/
public function getIP() {
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ != "") && ($ip_ != "unknown")) {
$ip=$ip_;
}
return $ip;
}
}

?>

PHP获取手机相关信息的更多相关文章

  1. iOS获取手机相关信息

    iOS具体的设备型号: #include <sys/types.h> #include <sys/sysctl.h> - (void)test { //手机型号. size_t ...

  2. ios开发-获取手机相关信息

    今天在做客户端的时候,里面有个意见反馈功能. 调用系统带的邮件功能,发送邮件到指定邮箱. 然后我就想,应该在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者 ...

  3. AppUtils【获取手机的信息和应用版本号、安装apk】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 一个获取设备的系统版本号.设备的型号.应用版本号code值.应用版本号name值.包名.是否更新.安装apk的工具类. 其实这个工具 ...

  4. Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  5. iOS开发-Swift获取手机设备信息(UIDevice)

    使用UiDevice获取设备信息 获取设备名称 let name = UIDevice.currentDevice().name 获取设备系统名称 let systemName = UIDevice. ...

  6. Linux sysinfo获取系统相关信息

    Linux中,可以用sysinfo来获取系统相关信息. #include <stdio.h> #include <stdlib.h> #include <errno.h& ...

  7. 【转】android 安卓APP获取手机设备信息和手机号码的代码示例

    http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...

  8. android利用ContentResolver访问者获取手机联系人信息

    转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...

  9. Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息

    Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...

随机推荐

  1. Java I/O解读与使用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲解了Java I/O解读与使用实例. 一.I/O基本概念 I/O全称是Inpu ...

  2. navicat的简单应用

    首先  创建连接 主机名 : 可以不写名称随意 主机名/IP地址:localhost或者127.0.0.1 都是本机的意思 端口:默认3306   尽量不要改怕与其余端口重复,如有重名端口系统会报错 ...

  3. struts2 标签字体大小

    <style type="text/css"> label{ font-size: 20px; } </style> <s:textfield nam ...

  4. [转]Java中的多线程你只要看这一篇就够了

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  5. .NET: 配置文件

    VS里项目->添加新项->应用程序配置文件 <?xml version="1.0" encoding="utf-8" ?> <co ...

  6. JSP和servlet有什么区别?

    JSP和servlet有什么区别? JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达. JSP编译后是"类servlet". Servlet ...

  7. 如何把Eclipse工程import Exprot到Android Studio

    http://jingyan.baidu.com/article/b87fe19e9e209f5218356808.html

  8. Android Handler简单使用

    package com.example.myhandlertest3; import android.os.Bundle; import android.os.Handler; import andr ...

  9. js获取url的参数值

    var match = new RegExp('[?&]voucherSn=([^&]*)').exec("http://m.v3beta.tootoo.cn/index.p ...

  10. 【crunch bang】tint2配置2

    # Tint2 config file # Background definitions # ID 1 rounded = 0 border_width = 0 background_color = ...