我这个方法比较笨 , 但是有效果 , 百度很多都是有问题的 ,基本都是获取地址的API的问题,

我用的是TP , 所以我是把方法放在common中的 , 然后首页调用,

第一个 , 获取访客IP , 这个不多说 , 基本都行

//获取访客ip

实例

function getip() {

if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP") , "unknown")) {

$ip = getenv("HTTP_CLIENT_IP");

} else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR") , "unknown")) {

$ip = getenv("HTTP_X_FORWARDED_FOR");

} else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR") , "unknown")) {

$ip = getenv("REMOTE_ADDR");

} else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {

$ip = $_SERVER['REMOTE_ADDR'];

} else {

$ip = "unknown";

}

return $ip;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

第二个获取用户地址 , 获取地址你需要准备百度接口 , 去上面可以申请免费的ak , 复制到$sk即可.不过一天免费的是有限制 .

申请地址 : http://lbsyun.baidu.com/index.php?title=jspopular3.0

实例

//根据ip获取城市、

function get_user_addr($ip){

$ak= '百度申请的ak';

$url = "http://api.map.baidu.com/location/ip?ak=$ak&ip=$ip";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

if(curl_errno($ch)) {

echo 'CURL ERROR Code: '.curl_errno($ch).', reason: '.curl_error($ch);

}

curl_close($ch);

$info = json_decode($output, true);

if($info['status'] == "0"){

$addr_info = $info['content']['address_detail']['province'].$info['content']['address_detail']['city'];

}

return $addr_info;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

第三个获取手机或浏览器信息, 这个方法比较笨 ,不过是可以用的 , 返回手机牌子,或者浏览器的类型

实例

//获取用户浏览器类型

function is_mobile(){

$user_agent = $_SERVER['HTTP_USER_AGENT'];

if (stripos($user_agent, "iPhone")!==false) {

$brand = 'iPhone';

} else if (stripos($user_agent, "SAMSUNG")!==false || stripos($user_agent, "Galaxy")!==false || strpos($user_agent, "GT-")!==false || strpos($user_agent, "SCH-")!==false || strpos($user_agent, "SM-")!==false) {

$brand = '三星';

} else if (stripos($user_agent, "Huawei")!==false || stripos($user_agent, "Honor")!==false || stripos($user_agent, "H60-")!==false || stripos($user_agent, "H30-")!==false) {

$brand = '华为';

} else if (stripos($user_agent, "Lenovo")!==false) {

$brand = '联想';

} else if (strpos($user_agent, "MI-ONE")!==false || strpos($user_agent, "MI 1S")!==false || strpos($user_agent, "MI 2")!==false || strpos($user_agent, "MI 3")!==false || strpos($user_agent, "MI 4")!==false || strpos($user_agent, "MI-4")!==false) {

$brand = '小米';

} else if (strpos($user_agent, "HM NOTE")!==false || strpos($user_agent, "HM201")!==false) {

$brand = '红米';

} else if (stripos($user_agent, "Coolpad")!==false || strpos($user_agent, "8190Q")!==false || strpos($user_agent, "5910")!==false) {

$brand = '酷派';

} else if (stripos($user_agent, "ZTE")!==false || stripos($user_agent, "X9180")!==false || stripos($user_agent, "N9180")!==false || stripos($user_agent, "U9180")!==false) {

$brand = '中兴';

} else if (stripos($user_agent, "OPPO")!==false || strpos($user_agent, "X9007")!==false || strpos($user_agent, "X907")!==false || strpos($user_agent, "X909")!==false || strpos($user_agent, "R831S")!==false || strpos($user_agent, "R827T")!==false || strpos($user_agent, "R821T")!==false || strpos($user_agent, "R811")!==false || strpos($user_agent, "R2017")!==false) {

$brand = 'OPPO';

} else if (strpos($user_agent, "HTC")!==false || stripos($user_agent, "Desire")!==false) {

$brand = 'HTC';

} else if (stripos($user_agent, "vivo")!==false) {

$brand = 'vivo';

} else if (stripos($user_agent, "K-Touch")!==false) {

$brand = '天语';

} else if (stripos($user_agent, "Nubia")!==false || stripos($user_agent, "NX50")!==false || stripos($user_agent, "NX40")!==false) {

$brand = '努比亚';

} else if (strpos($user_agent, "M045")!==false || strpos($user_agent, "M032")!==false || strpos($user_agent, "M355")!==false) {

$brand = '魅族';

} else if (stripos($user_agent, "DOOV")!==false) {

$brand = '朵唯';

} else if (stripos($user_agent, "GFIVE")!==false) {

$brand = '基伍';

} else if (stripos($user_agent, "Gionee")!==false || strpos($user_agent, "GN")!==false) {

$brand = '金立';

} else if (stripos($user_agent, "HS-U")!==false || stripos($user_agent, "HS-E")!==false) {

$brand = '海信';

} else if (stripos($user_agent, "Nokia")!==false) {

$brand = '诺基亚';

}

if( (false == strpos($user_agent,'MSIE')) && (strpos($user_agent, 'Trident')!==FALSE) ){

$brand = 'Internet Explorer 11.0';

}

if(false!==strpos($user_agent,'MSIE 10.0')){

$brand = 'Internet Explorer 10.0';

}

if(false!==strpos($user_agent,'MSIE 9.0')){

$brand = 'Internet Explorer 9.0';

}

if(false!==strpos($user_agent,'MSIE 8.0')){

$brand = 'Internet Explorer 8.0';

}

if(false!==strpos($user_agent,'MSIE 7.0')){

$brand = 'Internet Explorer 7.0';

}

if(false!==strpos($user_agent,'MSIE 6.0')){

$brand = 'Internet Explorer 6.0';

}

if(false!==strpos($user_agent,'Edge')){

$brand =  '微软';

}

if(false!==strpos($user_agent,'Firefox')){

$brand =  '火狐';

}

if(false!==strpos($user_agent,'Chrome')){

$brand =  '谷歌';

}

if(false!==strpos($user_agent,'Safari') && false ===strpos($user_agent,'Chrome')){

$brand =  '苹果';

}

if(false!==strpos($user_agent,'Opera')){

$brand =  '欧朋';

}

if(false!==strpos($user_agent,'360SE')){

$brand =  '360';

}

//微信浏览器

if(false!==strpos($user_agent,'MicroMessage')){

$brand =  'QQ';

}

return $brand;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

效果:

php取当前是pc还是手机号,PHP 获取访问用户的 IP, 地址 , 访问设备(手机还是PC)并返回手机类型和PC浏览器类型...相关推荐

  1. TP5 网站获取访问用户的 IP, 地址 , 访问设备(手机还是PC)并返回手机类型和PC浏览器类型

    我这个方法比较笨 , 但是有效果 , 百度很多都是有问题的 ,基本都是获取地址的API的问题, 我用的是TP , 所以我是把方法放在common中的 , 然后首页调用, 第一个 , 获取访客IP , ...

  2. 穿过代理服务器取远程用户真实IP地址

    public static string GetIP(){string str = "";//穿过代理服务器取远程用户真实IP地址:if (System.Web.HttpConte ...

  3. 【PC工具】更新简单好用绿色IP地址扫描工具,内部网络设备查看工具,内网ip查询ip扫描工具,电脑IP地址查看方法...

    玩路由器.NAS和树莓派的朋友经常需要查看内网设备ip地址.尤其是树莓派,一般情况不用桌面系统,登录SSH时候经常需要知道树莓派的ip地址.登录路由器可以查看到局域网内设备的ip地址,但很多情况下不方 ...

  4. PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS

    PC和服务器的IP地址信息DNS 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访 ...

  5. python—简单数据抓取七(采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用,利用ip池访问网页并将scrapy爬取转移到items的数据存入到数据库)

    学习目标: Python学习二十七-简单数据抓取七 学习内容: 1.采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用 2.利用ip池访问网页并将scrapy爬取转移到it ...

  6. 根据拓扑图,实现PC端通交换机ping通路由器loop back地址

    @根据拓扑图,实现PC端通交换机ping通路由器loop back地址TOC 实现PC端通交换机ping通路由器loop back地址 一. 拓扑图 二.要求 作业要求: 1.AR3上的loopbac ...

  7. (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息

    1.用了两天的时间,一直在研究微应用的,免登录及获取用户信息这一块. 但是钉钉官网写的太繁杂了,看了一天,硬是没看明白,最后,硬着头皮,一点点查资料,借鉴别人的代码,终于 研究 出来了,为了防止 年轻 ...

  8. 【Router】PC连接到路由LAN,但是无法获取到IP地址问题分析及解决方案

    问题描述 PC连接到路由器LAN,正常应该可以获取到IP地址,但是查看PC端网卡信息,发现未获取到IP地址 问题分析 使用wireshark抓取PC端网口数据报,发现只有PC的网卡发送的discove ...

  9. (转)最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等...

    什么是 RegExp? RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配. 通常用于格式验证.正则替换.查找子串等 各种编程语言的正则表达式基本相同 ...

最新文章

  1. Reorder List
  2. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))
  3. PHP字符串运算结果,PHP 实现后缀表达式(接受四则运算字符串,输出计算结果,附代码)...
  4. java程序执行的底层原理
  5. 米斯特白帽培训讲义 漏洞篇 代码执行
  6. 金融数据分析余挖掘实战1.9-1.10补充
  7. 北京公交“十三五”将通过大数据实现线路优化
  8. 风云再起-后IOE时代的Oracle架构变迁与创新-V3
  9. 时间序列预测入门必读的4篇论文
  10. php 页面缓存的做法,使用php进行页面缓存
  11. linux中文乱码问题
  12. @ResponseStatus的作用
  13. 初识AutoIt v3
  14. 内存高效的可逆 GAN 网络:Reversible GANs for Memory-efficient Image-to-Image Translation
  15. DICOM医学影像协议
  16. 顺序表--C语言版(从0开始,超详细解析 ,小白一听就懂!!!)
  17. 1032-大象喝水查
  18. ie浏览器下载门户网站的excel文档出现乱码现象的解决办法
  19. 当机器有了“视力”,它会抢人类的饭碗并取代人类吗?
  20. Keras-模型编译

热门文章

  1. 容器单机编排工具 Docker Compose,swap 限制,配置默认的CFS调度程序,Stress-ng 压力测试工具,docker官网镜像上传,及阿里云镜像上传,Docker 的资源限制
  2. 基于Mask的音频降噪
  3. 使用html快速基于antv G6实现可视化
  4. 技术人如何通过了解业务,获取晋升机会
  5. 002-Q Leaning
  6. Laravel-Admin 自定义操作按钮大全(表格工具区域、行内操作按钮)
  7. 1.2 Python图像的坐标变换-尺度变换
  8. excel将宏保存到个人工作簿
  9. JDK下载及安装教程
  10. 2023软件测试面试题及答案