热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2013.0812用PHP获取客户端操作系统,浏览器,语言,IP,IP归属地来源:本站......

2019独角兽企业重金招聘Python工程师标准

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

class Client
{
获得访客浏览器类型
function Get_Browser ( ) {
if ( ! empty ( $ _SERVER [ 'HTTP_USER_AGENT' ] ) ) {
$ br = $ _SERVER [ 'HTTP_USER_AGENT' ] ;
if ( preg_match ( '/MSIE/i' , $ br ) ) {
$ br = 'MSIE' ;
}
elseif ( preg_match ( '/Firefox/i' , $ br ) ) {
$ br = 'Firefox' ;
}
elseif ( preg_match ( '/Chrome/i' , $ br ) ) {
$ br = 'Chrome' ;
}
elseif ( preg_match ( '/Safari/i' , $ br ) ) {
$ br = 'Safari' ;
}
elseif ( preg_match ( '/Opera/i' , $ br ) ) {
$ br = 'Opera' ;
} else {
$ br = 'Other' ;
}
return $ br ;
}
else {
return "unknow" ;
}
}
获得访客浏览器语言
function Get_Lang ( ) {
if ( ! empty ( $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE' ] ) ) {
$ lang = $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE' ] ;
$ lang = substr ( $ lang , 0 , 5 ) ;
if ( preg_match ( "/zh-cn/i" , $ lang ) ) {
$ lang = "简体中文" ;
}
elseif ( preg_match ( "/zh/i" , $ lang ) ) {
$ lang = "繁体中文" ;
}
else {
$ lang = "English" ;
}
return $ lang ;
}
else {
return "unknow" ;
}
}
获取访客操作系统
function Get_Os ( ) {
if ( ! empty ( $ _SERVER [ 'HTTP_USER_AGENT' ] ) ) {
$ OS = $ _SERVER [ 'HTTP_USER_AGENT' ] ;
if ( preg_match ( '/win/i' , $ OS ) ) {
$ OS = 'Windows' ;
}
elseif ( preg_match ( '/mac/i' , $ OS ) ) {
$ OS = 'MAC' ;
}
elseif ( preg_match ( '/linux/i' , $ OS ) ) {
$ OS = 'Linux' ;
}
elseif ( preg_match ( '/unix/i' , $ OS ) ) {
$ OS = 'Unix' ;
}
elseif ( preg_match ( '/bsd/i' , $ OS ) ) {
$ OS = 'BSD' ;
}
else {
$ OS = 'Other' ;
}
return $ OS ;
}
else {
return "unknow" ;
}
}
获得访客真实ip
function Get_Ip_Addr ( ) {
if ( ! empty ( $ _SERVER [ "HTTP_CLIENT_IP" ] ) ) {
$ ip = $ _SERVER [ "HTTP_CLIENT_IP" ] ;
}
if ( ! empty ( $ _SERVER [ 'HTTP_X_FORWARDED_FOR' ] ) ) { //获取代理ip
$ ips = explode ( ',' , $ _SERVER [ 'HTTP_X_FORWARDED_FOR' ] ) ;
}
if ( $ ip ) {
$ ips = array_unshift ( $ ips , $ ip ) ;
}
$ count = count ( $ ips ) ;
for ( $ i &#61; 0 ; $ i <$ count ; $ i &#43;&#43; ) {
if ( ! preg_match ( "/^(10|172\.16|192\.168)\./i" , $ ips [ $ i ] ) ) { //排除局域网ip
$ ip &#61; $ ips [ $ i ] ;
break ;
}
}
$ tip &#61; empty ( $ _SERVER [ &#39;REMOTE_ADDR&#39; ] ) ? $ ip : $ _SERVER [ &#39;REMOTE_ADDR&#39; ] ;
if ( $ tip &#61;&#61; "127.0.0.1" ) { //获得本地真实IP
return self :: get_onlineip ( ) ;
}
else {
return $ tip ;
}
}
获得本地真实IP
function get_onlineip ( ) {
$ ip_json &#61; &#64; file_get_contents ( "http://ip.taobao.com/service/getIpInfo.php?ip&#61;myip" ) ;
$ ip_arr &#61; json_decode ( stripslashes ( $ ip_json ) , 1 ) ;
if ( $ ip_arr [ &#39;code&#39; ] &#61;&#61; 0 )
{
return $ ip_arr [ &#39;data&#39; ] [ &#39;ip&#39; ] ;
}
}
根据ip获得访客所在地地名
function Get_Ip_From ( $ ip &#61; &#39;&#39; ) {
if ( empty ( $ ip ) ) {
$ ip &#61; self :: Getip ( ) ;
}
$ ip_json &#61; &#64; file_get_contents ( "http://ip.taobao.com/service/getIpInfo.php?ip&#61;" . $ ip ) ; //根据taobao ip
$ ip_arr &#61; json_decode ( stripslashes ( $ ip_json ) , 1 ) ;
if ( $ ip_arr [ &#39;code&#39; ] &#61;&#61; 0 )
{
return $ ip_arr ;
}
else
{
return false ;
}
}
}

转:https://my.oschina.net/ailingling/blog/152775



推荐阅读
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 本文探讨了如何通过检测浏览器类型来动态加载特定的npm包,从而优化前端性能。具体而言,仅在用户使用Edge浏览器时加载相关包,以提升页面加载速度和整体用户体验。此外,文章还介绍了实现这一目标的技术细节和最佳实践,包括使用User-Agent字符串进行浏览器识别、条件加载策略以及性能监控方法。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 在使用 iframe 嵌入外部页面时,经常会遇到页面加载不同步的问题。当嵌入的页面响应较慢时,这种异步加载会导致用户体验不佳。本文介绍了如何通过监听 iframe 加载完成的事件来解决这一问题,并提出了针对双滚动条问题的有效解决方案,以提升整体的用户体验和页面加载效率。 ... [详细]
  • CSS中的pointer-events属性详解与应用
    在CSS中,`pointer-events`属性是一个非常实用但常被忽视的功能。它主要用于控制元素是否响应鼠标事件。当一个元素覆盖在其他元素之上时,通过设置`pointer-events`属性,可以决定该元素是否能够接收鼠标点击、悬停等交互操作,从而实现更灵活的用户界面设计。例如,将`pointer-events`设置为`none`可以使元素透明地传递鼠标事件,方便实现复杂的叠加效果和交互逻辑。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • 软件测试工程师必备:全面解析Web应用的浏览器兼容性测试方法与工具
    随着市场上浏览器种类的不断增多,特别是在平板和移动设备上的普及,确保网站在各种浏览器中都能正常运行变得尤为重要。本文将深入探讨Web应用的浏览器兼容性测试方法与工具,帮助软件测试工程师全面掌握这一关键技能,以提高应用的用户体验和可靠性。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 【Python爬虫实操】 不创作小说,专精网站内容迁移,超高效!(含源代码)
    本文详细介绍了如何利用Python爬虫技术实现高效网站内容迁移,涵盖前端、后端及Android相关知识点。通过具体实例和源代码,展示了如何精准抓取并迁移网站内容,适合对Python爬虫实战感兴趣的开发者参考。 ... [详细]
author-avatar
手机用户2502932023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有