首页 文章 精选 留言 我的

精选列表

搜索[检查工具],共10016篇文章
优秀的个人博客,低调大师

Mozilla 测试 Firefox/100.0 用户代理,检查网站兼容性

随着今天 Mozilla 更新了 Firefox 浏览器,Firefox 的版本号已经到达了 91。虽然目前的版本号仍然是两位数,但按照官方的升级路线图,明年 3 月 Mozilla 将发布 Firefox Nightly 100,为此 Mozilla 发起了一项实验,他们将 Firefox 浏览器的用户代理提前更改为三位数的 "Firefox/100.0" 版本,以此来测试未来将 Firefox 版本号更新至 100 时,是否会有网站因为用户代理的问题而出现网站加载异常的情况。 用户代理是网络浏览器使用的一个字符串,其中包括关于该软件的信息,例如名称、版本和使用的技术概要。当一个浏览器发布新版本的时候,开发者也会增加用户代理字符串中的版本号。 以 Mozilla Firefox 91 版本为例,它的用户代理将会如下显示: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 Firefox 的用户代理可以被拆分为以下几个部分: Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrailFirefox/firefoxversion Mozilla/5.0表明该浏览器与 Mozilla 相兼容的通用字符串。此字段几乎存在于现今所有浏览器的用户代理之中; platform描述了浏览器所运行的本地操作系统平台(例如:Windows、Mac、Linux 或 Android),以及其是否为移动设备; rv:geckoversion显示了 Gecko 的版本号。在最近几个版本的浏览器中, geckoversion与firefoxversion一致; Gecko/geckotrail标明浏览器基于 Gecko,在桌面端 geckotrail的值恒为"20100101"; Firefox/firefoxversion标明浏览器是 Firefox,并提供了版本号; 当访问一个网站时,浏览器的用户代理字符串将会被发送到网站,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。 在进行测试时,Mozilla 将把 Firefox 的用户代理改为以下字符串。如果持续的测试显示许多网站都会因为用户代理而产生问题,Firefox 可能会将用户代理暂时冻结在 Firefox 99.X 这样两位数的数字。 Mozilla/5.0 (Windows NT 10.0; rv:100.0) Gecko/20100101 Firefox/100.0 如果开发者想要在自己的网站上测试新的三位数用户代理,可以按照以下步骤操作手动更改用户代理字符串: 打开 Firefox,在地址栏中输入 「about:config」 然后按回车; 搜索「general.useragent.override」; 随后选择 「String」,然后单击加号 「+」,如下图所示: 单击 「+」 图标后,在输入框中输入文本:「Mozilla/5.0 (Windows NT 10.0; rv:100.0) Gecko/20100101 Firefox/100.0」,如下图所示: 然后保存设置,并重新启动浏览器; 完成上述设置后,访问网站时浏览器会将新的用户代理字符串发送给网站。如果遇到任何问题,开发者可以点击链接向 Mozilla 提交错误报告。 要将用户代理改回浏览器的默认设置,只需找到上面创建的设置将其删除即可。

优秀的个人博客,低调大师

C#判断联网状态检查电脑联网状态

Chinar blog :www.chinar.xin InternetGetConnectedState 本文提供全流程,中文翻译 Chinar 的初衷是将一种简单的生活方式带给世人使有限时间 具备无限可能 Chinar —— 心分享、心创新!助力快速利用 C# 判断用户电脑联网状态给新手节省宝贵的时间,避免采坑! Chinar 教程效果: 全文高清图片,点击即可放大观看 (很多人竟然不知道) 1 Intro —— 简介 Unity 引擎提供的 Application.internetReachability 只适用于移动端,在PC端就会出现无论联网与否,都显示联网 鉴于这种情况,Chinar 推荐大家采用C#引用外部库,调用MSDN封装好的函数,来解决! C++中的 InternetGetConnectedState —— 获取连接状态 为了便于大家学习, Chinar 已经封装、并简化了代码,附上注释! Microsoft 官方文档 Unity 移动端专用 API 2 Simplification —— 简化代码 简化代码,直接使用 —— 废话不多说直接贴代码 using UnityEngine; using System.Net.NetworkInformation; using System.Runtime.InteropServices; using Ping = System.Net.NetworkInformation.Ping; /// <summary> /// 简化 /// 封装函数 —— 检测本地网络链接状态 /// </summary> public class ChinarWeb : MonoBehaviour { [DllImport("winInet.dll")] //引用外部库 private static extern bool InternetGetConnectedState(ref int dwFlag, int dwReserved); //库中函数 void Start() { ChinarPing("www.chinar.xin"); } void Update() { IsConnectedInternet(); } /// <summary> /// 判断本地的连接状态 /// </summary> private static bool IsConnectedInternet() { int dwFlag = new int(); if (!InternetGetConnectedState(ref dwFlag, 0)) { PrintR("当前没有联网,请您先联网后再进行操作!"); if ((dwFlag & 0x14) == 0) return false; Debug.LogWarning("本地系统处于脱机模式。"); return false; } else { if ((dwFlag & 0x01) != 0) { Print("调制解调器上网。"); return true; } else if ((dwFlag & 0x02) != 0) { Print("网卡上网。"); return true; } else if ((dwFlag & 0x04) != 0) { Print("代理服务器上网。"); return true; } else if ((dwFlag & 0x40) != 0) { Print("虽然可以联网,但可能链接也可能不连接。"); return true; } } return false; } /// <summary> /// Chinar 闪亮输出 /// </summary> public static void Print(string str) { Debug.Log($"<b><color=lime><size={12}>{str}</size></color></b>"); } /// <summary> /// Chinar 警告输出 /// </summary> public static void PrintR(string str) { Debug.Log($"<b><color=red><size={12}>{str}</size></color></b>"); } /// <summary> /// Ping命令检测网络是否畅通 /// </summary> /// <param name="url">URL地址</param> /// <returns>是否ping通</returns> public static bool ChinarPing(string url) { bool isSucceed = true; Ping ping = new Ping(); try { var pingReply = ping.Send(url); if (pingReply != null && pingReply.Status != IPStatus.Success) { isSucceed = false; } if (pingReply != null) print("Ping 网址:<" + url + ">------状态:" + pingReply.Status); } catch { isSucceed = false; } return isSucceed; } } 3 Detailed Comments —— 详细注释 注释详细,一看就明白 using System.Net.NetworkInformation; using System.Runtime.InteropServices; using UnityEngine; using Ping = System.Net.NetworkInformation.Ping; /// <summary> /// 详细 /// 封装函数 —— 检测本地网络链接状态 /// </summary> public class ChinarWebDetail : MonoBehaviour { public const int INTERNET_CONNECTION_MODEM = 0x01; //调制解调器连接到 Internet public const int INTERNET_CONNECTION_LAN = 0x02; //局域网网卡连接到 Internet public const int INTERNET_CONNECTION_PROXY = 0x04; //代理服务器连接到 Internet private const int INTERNET_RAS_INSTALLED = 0x08; //已安装 RAS public const int INTERNET_CONNECTION_OFFLINE = 0x14; //脱机模式 public const int INTERNET_CONNECTION_CONFIGURED = 0x40; //具有到 Internet 的有效连接,但它当前可能连接也可能不连接 [DllImport("winInet.dll")] //引用外部库 private static extern bool InternetGetConnectedState(ref int dwFlag, int dwReserved); //库中函数 void Start() { ChinarPing(new[] {"www.chinar.xin,www.baidu.com"}, out var errorNum); print("失败个数:" + errorNum); } void Update() { LocalConnectionStatus(); } /// <summary> /// 判断本地的连接状态 /// </summary> /// <returns></returns> private static bool LocalConnectionStatus() { int dwFlag = new int(); if (!InternetGetConnectedState(ref dwFlag, 0)) { print("未连网!"); if ((dwFlag & INTERNET_CONNECTION_OFFLINE) == 0) return false; print("本地系统处于脱机模式。"); return false; } if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0) { print("调制解调器上网。"); return true; } if ((dwFlag & INTERNET_CONNECTION_LAN) != 0) { print("网卡上网。"); return true; } if ((dwFlag & INTERNET_CONNECTION_PROXY) != 0) { print("代理服务器上网。"); return true; } if ((dwFlag & INTERNET_CONNECTION_CONFIGURED) != 0) { print("虽然可以联网,但可能链接也可能不连接。"); return true; } return false; } /// <summary> /// Ping命令检测网络是否畅通 /// </summary> /// <param name="urls">URL数据</param> /// <param name="errorCount">ping时连接失败个数</param> /// <returns>是否ping通</returns> public static bool ChinarPing(string[] urls, out int errorCount) { bool isSucceed = true; Ping ping = new Ping(); errorCount = 0; try { for (int i = 0; i < urls.Length; i++) { var pingReply = ping.Send(urls[i]); if (pingReply != null && pingReply.Status != IPStatus.Success) { isSucceed = false; errorCount++; } if (pingReply != null) print("Ping 网址:<" + urls[i] + ">------状态:" + pingReply.Status); } } catch { isSucceed = false; errorCount = urls.Length; } return isSucceed; } } 支持 May Be —— 开发者,总有一天要做的事! 拥有自己的服务器,无需再找攻略 Chinar 提供一站式《零》基础教程使有限时间 具备无限可能! Chinar 知你所想,予你所求!( Chinar Blog ) END 本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册