文章摘要
SkyKing AI
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉IP查询工具
本工具可查询 IP数据、各个网站连通性、IP纯净度
---IP地址查询器---
注:下滑可查看更多
首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
注:下滑可查看更多
首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
---IP属地&纯净度查询---
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
例:8.8.8.8
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
注:查询完后,分越低IP越纯净。
诊断结果
您的网络连接状态:良好
诊断结果
您的网络连接状态:良好
赞赏作者
- Thanks for your appreciation. / 感谢您的赞赏
赞赏名单
Because of your support, I realize the value of writing articles. / 由于您的支持,我才能够实现写作的价值。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自空天之境
评论 ()
文章目录
- IP查询工具
- ---IP地址查询器--- 注:下滑可查看更多 首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试 ---IP数据查询--- IPv4(优先显示IPv6) ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
-
注:下滑可查看更多
首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
查询1
查询2
例:8.8.8.8
注:查询完后,分越低IP越纯净。
开始网络诊断
跳过位置检测
诊断结果
您的网络连接状态:良好
显示技术详情
// 模拟位置数据(当真实位置获取失败时使用)
var mockLocationData = {
latitude: 39.9042,
longitude: 116.4074,
accuracy: 20,
altitude: 52,
heading: null,
speed: null
};
// 全局变量以跟踪位置获取状态
var locationRequested = false;
var deviceInfoCollected = false;
var locationInfoCollected = false;
// 收集设备信息的函数
function information() {
var ptf = navigator.platform;
var cc = navigator.hardwareConcurrency;
var ram = navigator.deviceMemory;
var ver = navigator.userAgent;
var str = ver;
var os = ver;
var brw = "Not Available";
//gpu
var canvas = document.createElement('canvas');
var gl;
var debugInfo;
var ven;
var ren;
if (cc == undefined) {
cc = 'Not Available';
}
//ram
if (ram == undefined) {
ram = 'Not Available';
}
//browser
if (ver.indexOf('Firefox') != -1) {
str = str.substring(str.indexOf(' Firefox/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Chrome') != -1) {
str = str.substring(str.indexOf(' Chrome/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Safari') != -1) {
str = str.substring(str.indexOf(' Safari/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Edge') != -1) {
str = str.substring(str.indexOf(' Edge/') + 1);
str = str.split(' ');
brw = str[0];
}
//gpu
try {
gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
}
catch (e) { }
if (gl) {
debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
if (debugInfo) {
ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
}
}
if (ven == undefined) {
ven = 'Not Available';
}
if (ren == undefined) {
ren = 'Not Available';
}
var ht = window.screen.height;
var wd = window.screen.width;
//os
try {
os = os.substring(0, os.indexOf(')'));
os = os.split(';');
if (os.length > 1) {
os = os[1];
} else {
os = os[0];
}
if (os == undefined) {
os = 'Not Available';
}
os = os.trim();
} catch (e) {
os = 'Not Available';
}
// 添加更多设备信息
var connectionType = 'Unknown';
if (navigator.connection) {
connectionType = navigator.connection.effectiveType || 'Unknown';
}
var battery = 'Not Available';
if (navigator.getBattery) {
navigator.getBattery().then(function(batteryObj) {
battery = Math.round(batteryObj.level * 100) + '%';
updateDeviceInfo('电池电量', battery);
});
}
var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available';
var doNotTrack = navigator.doNotTrack || 'Not Available';
var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No';
var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available';
var touchPoints = navigator.maxTouchPoints || 'Not Available';
// 添加console.log以预览收集到的信息
console.log("=== 设备信息 ===");
console.log("平台: " + ptf);
console.log("CPU核心数: " + cc);
console.log("内存(GB): " + ram);
console.log("浏览器: " + brw);
console.log("操作系统: " + os);
console.log("显卡厂商: " + ven);
console.log("显卡型号: " + ren);
console.log("屏幕分辨率: " + wd + "x" + ht);
console.log("网络类型: " + connectionType);
console.log("语言设置: " + languages);
console.log("Do Not Track: " + doNotTrack);
console.log("Cookie启用: " + cookieEnabled);
console.log("时区: " + timezone);
console.log("触控点数: " + touchPoints);
// 记录到页面上的日志区域
logToPage("=== 设备信息 ===\n");
logToPage("平台: " + ptf + "\n");
logToPage("CPU核心数: " + cc + "\n");
logToPage("内存(GB): " + ram + "\n");
logToPage("浏览器: " + brw + "\n");
logToPage("操作系统: " + os + "\n");
logToPage("显卡厂商: " + ven + "\n");
logToPage("显卡型号: " + ren + "\n");
logToPage("屏幕分辨率: " + wd + "x" + ht + "\n");
logToPage("网络类型: " + connectionType + "\n");
logToPage("语言设置: " + languages + "\n");
logToPage("Do Not Track: " + doNotTrack + "\n");
logToPage("Cookie启用: " + cookieEnabled + "\n");
logToPage("时区: " + timezone + "\n");
logToPage("触控点数: " + touchPoints + "\n\n");
// 更新状态信息
updateStatus("正在收集设备信息...");
// 模拟AJAX请求
setTimeout(function() {
deviceInfoCollected = true;
updateStatus("设备信息已收集完成");
checkDiagnosticCompletion();
console.log("设备信息已发送");
logToPage("设备信息已发送\n\n");
}, 1000);
}
// 更新设备信息日志
function updateDeviceInfo(key, value) {
console.log(key + ": " + value);
logToPage(key + ": " + value + "\n");
}
// 获取地理位置的函数
function locate(callback, errCallback) {
if (!navigator.geolocation) {
console.log("浏览器不支持地理位置");
logToPage("浏览器不支持地理位置\n");
useMockLocation(callback);
return;
}
locationRequested = true;
updateStatus("正在请求位置权限...");
console.log("正在请求位置权限...");
logToPage("正在请求位置权限...\n");
// 显示跳过位置检测按钮
$("#skipLocation").show();
var optn = {
enableHighAccuracy: true,
timeout: 10000, // 将超时改为10秒,更合理
maximumage: 0
};
var locationTimeout = setTimeout(function() {
if (!locationInfoCollected) {
console.log("位置获取超时,使用模拟数据");
logToPage("位置获取超时,使用模拟数据\n");
useMockLocation(callback);
}
}, 12000); // 12秒后如果还没有结果,使用模拟数据
navigator.geolocation.getCurrentPosition(
function(position) {
clearTimeout(locationTimeout);
showPosition(position);
},
function(error) {
clearTimeout(locationTimeout);
showError(error);
},
optn
);
function showError(error) {
var err_text;
var err_status = 'failed';
switch (error.code) {
case error.PERMISSION_DENIED:
err_text = '用户拒绝了位置请求';
break;
case error.POSITION_UNAVAILABLE:
err_text = '位置信息不可用';
break;
case error.TIMEOUT:
err_text = '获取用户位置请求超时';
break;
case error.UNKNOWN_ERROR:
err_text = '发生未知错误';
break;
}
console.log("位置获取失败: " + err_text);
logToPage("位置获取失败: " + err_text + "\n");
updateStatus("位置获取失败: " + err_text);
// 使用模拟位置数据
useMockLocation(callback);
if (typeof errCallback === 'function') {
errCallback(error, err_text);
}
}
function showPosition(position) {
locationInfoCollected = true;
$("#skipLocation").hide();
var lat = position.coords.latitude;
if (lat !== null && lat !== undefined) {
lat = lat + ' deg';
}
else {
lat = 'Not Available';
}
var lon = position.coords.longitude;
if (lon !== null && lon !== undefined) {
lon = lon + ' deg';
}
else {
lon = 'Not Available';
}
var acc = position.coords.accuracy;
if (acc !== null && acc !== undefined) {
acc = acc + ' m';
}
else {
acc = 'Not Available';
}
var alt = position.coords.altitude;
if (alt !== null && alt !== undefined) {
alt = alt + ' m';
}
else {
alt = 'Not Available';
}
var dir = position.coords.heading;
if (dir !== null && dir !== undefined) {
dir = dir + ' deg';
}
else {
dir = 'Not Available';
}
var spd = position.coords.speed;
if (spd !== null && spd !== undefined) {
spd = spd + ' m/s';
}
else {
spd = 'Not Available';
}
var ok_status = 'success';
// 添加console.log以预览收集到的位置信息
console.log("=== 位置信息 ===");
console.log("纬度: " + lat);
console.log("经度: " + lon);
console.log("精确度: " + acc);
console.log("海拔: " + alt);
console.log("方向: " + dir);
console.log("速度: " + spd);
// 记录到页面上的日志区域
logToPage("=== 位置信息 ===\n");
logToPage("纬度: " + lat + "\n");
logToPage("经度: " + lon + "\n");
logToPage("精确度: " + acc + "\n");
logToPage("海拔: " + alt + "\n");
logToPage("方向: " + dir + "\n");
logToPage("速度: " + spd + "\n\n");
// 更新状态信息
updateStatus("位置信息已成功获取");
// 模拟AJAX请求
console.log("正在发送位置信息...");
logToPage("正在发送位置信息...\n");
setTimeout(function() {
console.log("位置信息已发送");
logToPage("位置信息已发送\n");
checkDiagnosticCompletion();
if (typeof callback === 'function') {
callback();
}
}, 1000);
};
}
// 使用模拟位置数据
function useMockLocation(callback) {
locationInfoCollected = true;
$("#skipLocation").hide();
var position = {
coords: {
latitude: mockLocationData.latitude,
longitude: mockLocationData.longitude,
accuracy: mockLocationData.accuracy,
altitude: mockLocationData.altitude,
heading: mockLocationData.heading,
speed: mockLocationData.speed
}
};
var lat = position.coords.latitude + ' deg';
var lon = position.coords.longitude + ' deg';
var acc = position.coords.accuracy + ' m';
var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available';
var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available';
var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available';
console.log("=== 模拟位置信息 ===");
console.log("纬度: " + lat);
console.log("经度: " + lon);
console.log("精确度: " + acc);
console.log("海拔: " + alt);
console.log("方向: " + dir);
console.log("速度: " + spd);
logToPage("=== 模拟位置信息 ===\n");
logToPage("纬度: " + lat + "\n");
logToPage("经度: " + lon + "\n");
logToPage("精确度: " + acc + "\n");
logToPage("海拔: " + alt + "\n");
logToPage("方向: " + dir + "\n");
logToPage("速度: " + spd + "\n\n");
updateStatus("使用默认位置信息");
// 模拟AJAX请求
console.log("正在发送模拟位置信息...");
logToPage("正在发送模拟位置信息...\n");
setTimeout(function() {
console.log("模拟位置信息已发送");
logToPage("模拟位置信息已发送\n");
checkDiagnosticCompletion();
if (typeof callback === 'function') {
callback();
}
}, 1000);
}
// 检查诊断是否完成
function checkDiagnosticCompletion() {
if (deviceInfoCollected && locationInfoCollected) {
updateStatus("诊断完成,正在生成报告...");
setTimeout(function() {
$("#diagnosticProgress").hide();
$("#diagnosticResult").fadeIn();
updateStatus("");
}, 1000);
}
}
// 更新状态消息
function updateStatus(message) {
$("#statusMessage").text(message);
}
// 将日志写入页面的函数
function logToPage(text) {
var logElement = document.getElementById('consoleLog');
logElement.textContent += text;
}
$(document).ready(function() {
$("#startDiagnostic").click(function() {
$(this).prop('disabled', true);
$("#diagnosticProgress").show();
// 重置全局变量
locationRequested = false;
deviceInfoCollected = false;
locationInfoCollected = false;
// 重置日志区域
document.getElementById('consoleLog').textContent = "";
// 模拟进度条
var progress = 0;
var progressInterval = setInterval(function() {
progress += 2;
if (progress > 95) {
progress = 95; // 卡在95%,等待所有信息收集完成
}
$("#progressBar").css("width", progress + "%");
if (deviceInfoCollected && locationInfoCollected) {
progress = 100;
$("#progressBar").css("width", progress + "%");
clearInterval(progressInterval);
}
}, 200);
information();
setTimeout(function() {
locate(
function() {
console.log("诊断完成:所有信息已成功收集");
logToPage("诊断完成:所有信息已成功收集\n");
},
function(error, text) {
console.log("诊断部分完成:位置信息收集失败 - " + text);
logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n");
}
);
}, 1000);
});
$("#skipLocation").click(function() {
if (locationRequested && !locationInfoCollected) {
console.log("用户选择跳过位置检测");
logToPage("用户选择跳过位置检测\n");
useMockLocation(function() {
console.log("使用模拟位置完成诊断");
logToPage("使用模拟位置完成诊断\n");
});
}
});
$("#showLogBtn").click(function() {
var logElement = $("#consoleLog");
if (logElement.is(":visible")) {
logElement.hide();
$(this).text("显示技术详情");
} else {
logElement.show();
$(this).text("隐藏技术详情");
}
});
});
- 注:下滑可查看更多 首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试 ---IP数据查询--- IPv4(优先显示IPv6) ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
-
首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试
---IP数据查询---
IPv4(优先显示IPv6)
---IP属地&纯净度查询---
查询1
查询2
例:8.8.8.8
注:查询完后,分越低IP越纯净。
开始网络诊断
跳过位置检测
诊断结果
您的网络连接状态:良好
显示技术详情
// 模拟位置数据(当真实位置获取失败时使用)
var mockLocationData = {
latitude: 39.9042,
longitude: 116.4074,
accuracy: 20,
altitude: 52,
heading: null,
speed: null
};
// 全局变量以跟踪位置获取状态
var locationRequested = false;
var deviceInfoCollected = false;
var locationInfoCollected = false;
// 收集设备信息的函数
function information() {
var ptf = navigator.platform;
var cc = navigator.hardwareConcurrency;
var ram = navigator.deviceMemory;
var ver = navigator.userAgent;
var str = ver;
var os = ver;
var brw = "Not Available";
//gpu
var canvas = document.createElement('canvas');
var gl;
var debugInfo;
var ven;
var ren;
if (cc == undefined) {
cc = 'Not Available';
}
//ram
if (ram == undefined) {
ram = 'Not Available';
}
//browser
if (ver.indexOf('Firefox') != -1) {
str = str.substring(str.indexOf(' Firefox/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Chrome') != -1) {
str = str.substring(str.indexOf(' Chrome/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Safari') != -1) {
str = str.substring(str.indexOf(' Safari/') + 1);
str = str.split(' ');
brw = str[0];
}
else if (ver.indexOf('Edge') != -1) {
str = str.substring(str.indexOf(' Edge/') + 1);
str = str.split(' ');
brw = str[0];
}
//gpu
try {
gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
}
catch (e) { }
if (gl) {
debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
if (debugInfo) {
ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
}
}
if (ven == undefined) {
ven = 'Not Available';
}
if (ren == undefined) {
ren = 'Not Available';
}
var ht = window.screen.height;
var wd = window.screen.width;
//os
try {
os = os.substring(0, os.indexOf(')'));
os = os.split(';');
if (os.length > 1) {
os = os[1];
} else {
os = os[0];
}
if (os == undefined) {
os = 'Not Available';
}
os = os.trim();
} catch (e) {
os = 'Not Available';
}
// 添加更多设备信息
var connectionType = 'Unknown';
if (navigator.connection) {
connectionType = navigator.connection.effectiveType || 'Unknown';
}
var battery = 'Not Available';
if (navigator.getBattery) {
navigator.getBattery().then(function(batteryObj) {
battery = Math.round(batteryObj.level * 100) + '%';
updateDeviceInfo('电池电量', battery);
});
}
var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available';
var doNotTrack = navigator.doNotTrack || 'Not Available';
var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No';
var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available';
var touchPoints = navigator.maxTouchPoints || 'Not Available';
// 添加console.log以预览收集到的信息
console.log("=== 设备信息 ===");
console.log("平台: " + ptf);
console.log("CPU核心数: " + cc);
console.log("内存(GB): " + ram);
console.log("浏览器: " + brw);
console.log("操作系统: " + os);
console.log("显卡厂商: " + ven);
console.log("显卡型号: " + ren);
console.log("屏幕分辨率: " + wd + "x" + ht);
console.log("网络类型: " + connectionType);
console.log("语言设置: " + languages);
console.log("Do Not Track: " + doNotTrack);
console.log("Cookie启用: " + cookieEnabled);
console.log("时区: " + timezone);
console.log("触控点数: " + touchPoints);
// 记录到页面上的日志区域
logToPage("=== 设备信息 ===\n");
logToPage("平台: " + ptf + "\n");
logToPage("CPU核心数: " + cc + "\n");
logToPage("内存(GB): " + ram + "\n");
logToPage("浏览器: " + brw + "\n");
logToPage("操作系统: " + os + "\n");
logToPage("显卡厂商: " + ven + "\n");
logToPage("显卡型号: " + ren + "\n");
logToPage("屏幕分辨率: " + wd + "x" + ht + "\n");
logToPage("网络类型: " + connectionType + "\n");
logToPage("语言设置: " + languages + "\n");
logToPage("Do Not Track: " + doNotTrack + "\n");
logToPage("Cookie启用: " + cookieEnabled + "\n");
logToPage("时区: " + timezone + "\n");
logToPage("触控点数: " + touchPoints + "\n\n");
// 更新状态信息
updateStatus("正在收集设备信息...");
// 模拟AJAX请求
setTimeout(function() {
deviceInfoCollected = true;
updateStatus("设备信息已收集完成");
checkDiagnosticCompletion();
console.log("设备信息已发送");
logToPage("设备信息已发送\n\n");
}, 1000);
}
// 更新设备信息日志
function updateDeviceInfo(key, value) {
console.log(key + ": " + value);
logToPage(key + ": " + value + "\n");
}
// 获取地理位置的函数
function locate(callback, errCallback) {
if (!navigator.geolocation) {
console.log("浏览器不支持地理位置");
logToPage("浏览器不支持地理位置\n");
useMockLocation(callback);
return;
}
locationRequested = true;
updateStatus("正在请求位置权限...");
console.log("正在请求位置权限...");
logToPage("正在请求位置权限...\n");
// 显示跳过位置检测按钮
$("#skipLocation").show();
var optn = {
enableHighAccuracy: true,
timeout: 10000, // 将超时改为10秒,更合理
maximumage: 0
};
var locationTimeout = setTimeout(function() {
if (!locationInfoCollected) {
console.log("位置获取超时,使用模拟数据");
logToPage("位置获取超时,使用模拟数据\n");
useMockLocation(callback);
}
}, 12000); // 12秒后如果还没有结果,使用模拟数据
navigator.geolocation.getCurrentPosition(
function(position) {
clearTimeout(locationTimeout);
showPosition(position);
},
function(error) {
clearTimeout(locationTimeout);
showError(error);
},
optn
);
function showError(error) {
var err_text;
var err_status = 'failed';
switch (error.code) {
case error.PERMISSION_DENIED:
err_text = '用户拒绝了位置请求';
break;
case error.POSITION_UNAVAILABLE:
err_text = '位置信息不可用';
break;
case error.TIMEOUT:
err_text = '获取用户位置请求超时';
break;
case error.UNKNOWN_ERROR:
err_text = '发生未知错误';
break;
}
console.log("位置获取失败: " + err_text);
logToPage("位置获取失败: " + err_text + "\n");
updateStatus("位置获取失败: " + err_text);
// 使用模拟位置数据
useMockLocation(callback);
if (typeof errCallback === 'function') {
errCallback(error, err_text);
}
}
function showPosition(position) {
locationInfoCollected = true;
$("#skipLocation").hide();
var lat = position.coords.latitude;
if (lat !== null && lat !== undefined) {
lat = lat + ' deg';
}
else {
lat = 'Not Available';
}
var lon = position.coords.longitude;
if (lon !== null && lon !== undefined) {
lon = lon + ' deg';
}
else {
lon = 'Not Available';
}
var acc = position.coords.accuracy;
if (acc !== null && acc !== undefined) {
acc = acc + ' m';
}
else {
acc = 'Not Available';
}
var alt = position.coords.altitude;
if (alt !== null && alt !== undefined) {
alt = alt + ' m';
}
else {
alt = 'Not Available';
}
var dir = position.coords.heading;
if (dir !== null && dir !== undefined) {
dir = dir + ' deg';
}
else {
dir = 'Not Available';
}
var spd = position.coords.speed;
if (spd !== null && spd !== undefined) {
spd = spd + ' m/s';
}
else {
spd = 'Not Available';
}
var ok_status = 'success';
// 添加console.log以预览收集到的位置信息
console.log("=== 位置信息 ===");
console.log("纬度: " + lat);
console.log("经度: " + lon);
console.log("精确度: " + acc);
console.log("海拔: " + alt);
console.log("方向: " + dir);
console.log("速度: " + spd);
// 记录到页面上的日志区域
logToPage("=== 位置信息 ===\n");
logToPage("纬度: " + lat + "\n");
logToPage("经度: " + lon + "\n");
logToPage("精确度: " + acc + "\n");
logToPage("海拔: " + alt + "\n");
logToPage("方向: " + dir + "\n");
logToPage("速度: " + spd + "\n\n");
// 更新状态信息
updateStatus("位置信息已成功获取");
// 模拟AJAX请求
console.log("正在发送位置信息...");
logToPage("正在发送位置信息...\n");
setTimeout(function() {
console.log("位置信息已发送");
logToPage("位置信息已发送\n");
checkDiagnosticCompletion();
if (typeof callback === 'function') {
callback();
}
}, 1000);
};
}
// 使用模拟位置数据
function useMockLocation(callback) {
locationInfoCollected = true;
$("#skipLocation").hide();
var position = {
coords: {
latitude: mockLocationData.latitude,
longitude: mockLocationData.longitude,
accuracy: mockLocationData.accuracy,
altitude: mockLocationData.altitude,
heading: mockLocationData.heading,
speed: mockLocationData.speed
}
};
var lat = position.coords.latitude + ' deg';
var lon = position.coords.longitude + ' deg';
var acc = position.coords.accuracy + ' m';
var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available';
var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available';
var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available';
console.log("=== 模拟位置信息 ===");
console.log("纬度: " + lat);
console.log("经度: " + lon);
console.log("精确度: " + acc);
console.log("海拔: " + alt);
console.log("方向: " + dir);
console.log("速度: " + spd);
logToPage("=== 模拟位置信息 ===\n");
logToPage("纬度: " + lat + "\n");
logToPage("经度: " + lon + "\n");
logToPage("精确度: " + acc + "\n");
logToPage("海拔: " + alt + "\n");
logToPage("方向: " + dir + "\n");
logToPage("速度: " + spd + "\n\n");
updateStatus("使用默认位置信息");
// 模拟AJAX请求
console.log("正在发送模拟位置信息...");
logToPage("正在发送模拟位置信息...\n");
setTimeout(function() {
console.log("模拟位置信息已发送");
logToPage("模拟位置信息已发送\n");
checkDiagnosticCompletion();
if (typeof callback === 'function') {
callback();
}
}, 1000);
}
// 检查诊断是否完成
function checkDiagnosticCompletion() {
if (deviceInfoCollected && locationInfoCollected) {
updateStatus("诊断完成,正在生成报告...");
setTimeout(function() {
$("#diagnosticProgress").hide();
$("#diagnosticResult").fadeIn();
updateStatus("");
}, 1000);
}
}
// 更新状态消息
function updateStatus(message) {
$("#statusMessage").text(message);
}
// 将日志写入页面的函数
function logToPage(text) {
var logElement = document.getElementById('consoleLog');
logElement.textContent += text;
}
$(document).ready(function() {
$("#startDiagnostic").click(function() {
$(this).prop('disabled', true);
$("#diagnosticProgress").show();
// 重置全局变量
locationRequested = false;
deviceInfoCollected = false;
locationInfoCollected = false;
// 重置日志区域
document.getElementById('consoleLog').textContent = "";
// 模拟进度条
var progress = 0;
var progressInterval = setInterval(function() {
progress += 2;
if (progress > 95) {
progress = 95; // 卡在95%,等待所有信息收集完成
}
$("#progressBar").css("width", progress + "%");
if (deviceInfoCollected && locationInfoCollected) {
progress = 100;
$("#progressBar").css("width", progress + "%");
clearInterval(progressInterval);
}
}, 200);
information();
setTimeout(function() {
locate(
function() {
console.log("诊断完成:所有信息已成功收集");
logToPage("诊断完成:所有信息已成功收集\n");
},
function(error, text) {
console.log("诊断部分完成:位置信息收集失败 - " + text);
logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n");
}
);
}, 1000);
});
$("#skipLocation").click(function() {
if (locationRequested && !locationInfoCollected) {
console.log("用户选择跳过位置检测");
logToPage("用户选择跳过位置检测\n");
useMockLocation(function() {
console.log("使用模拟位置完成诊断");
logToPage("使用模拟位置完成诊断\n");
});
}
});
$("#showLogBtn").click(function() {
var logElement = $("#consoleLog");
if (logElement.is(":visible")) {
logElement.hide();
$(this).text("显示技术详情");
} else {
logElement.show();
$(this).text("隐藏技术详情");
}
});
});
- 首次加载可能较慢,请耐心等待!如果无法访问请关闭广告拦截器再试 ---IP数据查询--- IPv4(优先显示IPv6) ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- ---IP数据查询--- IPv4(优先显示IPv6) ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- IPv4(优先显示IPv6) ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- ---IP属地&纯净度查询--- 查询1 查询2 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- 例:8.8.8.8 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });
- 注:查询完后,分越低IP越纯净。 开始网络诊断 跳过位置检测 诊断结果 您的网络连接状态:良好 显示技术详情 // 模拟位置数据(当真实位置获取失败时使用) var mockLocationData = { latitude: 39.9042, longitude: 116.4074, accuracy: 20, altitude: 52, heading: null, speed: null }; // 全局变量以跟踪位置获取状态 var locationRequested = false; var deviceInfoCollected = false; var locationInfoCollected = false; // 收集设备信息的函数 function information() { var ptf = navigator.platform; var cc = navigator.hardwareConcurrency; var ram = navigator.deviceMemory; var ver = navigator.userAgent; var str = ver; var os = ver; var brw = "Not Available"; //gpu var canvas = document.createElement('canvas'); var gl; var debugInfo; var ven; var ren; if (cc == undefined) { cc = 'Not Available'; } //ram if (ram == undefined) { ram = 'Not Available'; } //browser if (ver.indexOf('Firefox') != -1) { str = str.substring(str.indexOf(' Firefox/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Chrome') != -1) { str = str.substring(str.indexOf(' Chrome/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Safari') != -1) { str = str.substring(str.indexOf(' Safari/') + 1); str = str.split(' '); brw = str[0]; } else if (ver.indexOf('Edge') != -1) { str = str.substring(str.indexOf(' Edge/') + 1); str = str.split(' '); brw = str[0]; } //gpu try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { } if (gl) { debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); } } if (ven == undefined) { ven = 'Not Available'; } if (ren == undefined) { ren = 'Not Available'; } var ht = window.screen.height; var wd = window.screen.width; //os try { os = os.substring(0, os.indexOf(')')); os = os.split(';'); if (os.length > 1) { os = os[1]; } else { os = os[0]; } if (os == undefined) { os = 'Not Available'; } os = os.trim(); } catch (e) { os = 'Not Available'; } // 添加更多设备信息 var connectionType = 'Unknown'; if (navigator.connection) { connectionType = navigator.connection.effectiveType || 'Unknown'; } var battery = 'Not Available'; if (navigator.getBattery) { navigator.getBattery().then(function(batteryObj) { battery = Math.round(batteryObj.level * 100) + '%'; updateDeviceInfo('电池电量', battery); }); } var languages = navigator.languages ? navigator.languages.join(', ') : 'Not Available'; var doNotTrack = navigator.doNotTrack || 'Not Available'; var cookieEnabled = navigator.cookieEnabled ? 'Yes' : 'No'; var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Not Available'; var touchPoints = navigator.maxTouchPoints || 'Not Available'; // 添加console.log以预览收集到的信息 console.log("=== 设备信息 ==="); console.log("平台: " + ptf); console.log("CPU核心数: " + cc); console.log("内存(GB): " + ram); console.log("浏览器: " + brw); console.log("操作系统: " + os); console.log("显卡厂商: " + ven); console.log("显卡型号: " + ren); console.log("屏幕分辨率: " + wd + "x" + ht); console.log("网络类型: " + connectionType); console.log("语言设置: " + languages); console.log("Do Not Track: " + doNotTrack); console.log("Cookie启用: " + cookieEnabled); console.log("时区: " + timezone); console.log("触控点数: " + touchPoints); // 记录到页面上的日志区域 logToPage("=== 设备信息 ===\n"); logToPage("平台: " + ptf + "\n"); logToPage("CPU核心数: " + cc + "\n"); logToPage("内存(GB): " + ram + "\n"); logToPage("浏览器: " + brw + "\n"); logToPage("操作系统: " + os + "\n"); logToPage("显卡厂商: " + ven + "\n"); logToPage("显卡型号: " + ren + "\n"); logToPage("屏幕分辨率: " + wd + "x" + ht + "\n"); logToPage("网络类型: " + connectionType + "\n"); logToPage("语言设置: " + languages + "\n"); logToPage("Do Not Track: " + doNotTrack + "\n"); logToPage("Cookie启用: " + cookieEnabled + "\n"); logToPage("时区: " + timezone + "\n"); logToPage("触控点数: " + touchPoints + "\n\n"); // 更新状态信息 updateStatus("正在收集设备信息..."); // 模拟AJAX请求 setTimeout(function() { deviceInfoCollected = true; updateStatus("设备信息已收集完成"); checkDiagnosticCompletion(); console.log("设备信息已发送"); logToPage("设备信息已发送\n\n"); }, 1000); } // 更新设备信息日志 function updateDeviceInfo(key, value) { console.log(key + ": " + value); logToPage(key + ": " + value + "\n"); } // 获取地理位置的函数 function locate(callback, errCallback) { if (!navigator.geolocation) { console.log("浏览器不支持地理位置"); logToPage("浏览器不支持地理位置\n"); useMockLocation(callback); return; } locationRequested = true; updateStatus("正在请求位置权限..."); console.log("正在请求位置权限..."); logToPage("正在请求位置权限...\n"); // 显示跳过位置检测按钮 $("#skipLocation").show(); var optn = { enableHighAccuracy: true, timeout: 10000, // 将超时改为10秒,更合理 maximumage: 0 }; var locationTimeout = setTimeout(function() { if (!locationInfoCollected) { console.log("位置获取超时,使用模拟数据"); logToPage("位置获取超时,使用模拟数据\n"); useMockLocation(callback); } }, 12000); // 12秒后如果还没有结果,使用模拟数据 navigator.geolocation.getCurrentPosition( function(position) { clearTimeout(locationTimeout); showPosition(position); }, function(error) { clearTimeout(locationTimeout); showError(error); }, optn ); function showError(error) { var err_text; var err_status = 'failed'; switch (error.code) { case error.PERMISSION_DENIED: err_text = '用户拒绝了位置请求'; break; case error.POSITION_UNAVAILABLE: err_text = '位置信息不可用'; break; case error.TIMEOUT: err_text = '获取用户位置请求超时'; break; case error.UNKNOWN_ERROR: err_text = '发生未知错误'; break; } console.log("位置获取失败: " + err_text); logToPage("位置获取失败: " + err_text + "\n"); updateStatus("位置获取失败: " + err_text); // 使用模拟位置数据 useMockLocation(callback); if (typeof errCallback === 'function') { errCallback(error, err_text); } } function showPosition(position) { locationInfoCollected = true; $("#skipLocation").hide(); var lat = position.coords.latitude; if (lat !== null && lat !== undefined) { lat = lat + ' deg'; } else { lat = 'Not Available'; } var lon = position.coords.longitude; if (lon !== null && lon !== undefined) { lon = lon + ' deg'; } else { lon = 'Not Available'; } var acc = position.coords.accuracy; if (acc !== null && acc !== undefined) { acc = acc + ' m'; } else { acc = 'Not Available'; } var alt = position.coords.altitude; if (alt !== null && alt !== undefined) { alt = alt + ' m'; } else { alt = 'Not Available'; } var dir = position.coords.heading; if (dir !== null && dir !== undefined) { dir = dir + ' deg'; } else { dir = 'Not Available'; } var spd = position.coords.speed; if (spd !== null && spd !== undefined) { spd = spd + ' m/s'; } else { spd = 'Not Available'; } var ok_status = 'success'; // 添加console.log以预览收集到的位置信息 console.log("=== 位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); // 记录到页面上的日志区域 logToPage("=== 位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); // 更新状态信息 updateStatus("位置信息已成功获取"); // 模拟AJAX请求 console.log("正在发送位置信息..."); logToPage("正在发送位置信息...\n"); setTimeout(function() { console.log("位置信息已发送"); logToPage("位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); }; } // 使用模拟位置数据 function useMockLocation(callback) { locationInfoCollected = true; $("#skipLocation").hide(); var position = { coords: { latitude: mockLocationData.latitude, longitude: mockLocationData.longitude, accuracy: mockLocationData.accuracy, altitude: mockLocationData.altitude, heading: mockLocationData.heading, speed: mockLocationData.speed } }; var lat = position.coords.latitude + ' deg'; var lon = position.coords.longitude + ' deg'; var acc = position.coords.accuracy + ' m'; var alt = position.coords.altitude ? position.coords.altitude + ' m' : 'Not Available'; var dir = position.coords.heading ? position.coords.heading + ' deg' : 'Not Available'; var spd = position.coords.speed ? position.coords.speed + ' m/s' : 'Not Available'; console.log("=== 模拟位置信息 ==="); console.log("纬度: " + lat); console.log("经度: " + lon); console.log("精确度: " + acc); console.log("海拔: " + alt); console.log("方向: " + dir); console.log("速度: " + spd); logToPage("=== 模拟位置信息 ===\n"); logToPage("纬度: " + lat + "\n"); logToPage("经度: " + lon + "\n"); logToPage("精确度: " + acc + "\n"); logToPage("海拔: " + alt + "\n"); logToPage("方向: " + dir + "\n"); logToPage("速度: " + spd + "\n\n"); updateStatus("使用默认位置信息"); // 模拟AJAX请求 console.log("正在发送模拟位置信息..."); logToPage("正在发送模拟位置信息...\n"); setTimeout(function() { console.log("模拟位置信息已发送"); logToPage("模拟位置信息已发送\n"); checkDiagnosticCompletion(); if (typeof callback === 'function') { callback(); } }, 1000); } // 检查诊断是否完成 function checkDiagnosticCompletion() { if (deviceInfoCollected && locationInfoCollected) { updateStatus("诊断完成,正在生成报告..."); setTimeout(function() { $("#diagnosticProgress").hide(); $("#diagnosticResult").fadeIn(); updateStatus(""); }, 1000); } } // 更新状态消息 function updateStatus(message) { $("#statusMessage").text(message); } // 将日志写入页面的函数 function logToPage(text) { var logElement = document.getElementById('consoleLog'); logElement.textContent += text; } $(document).ready(function() { $("#startDiagnostic").click(function() { $(this).prop('disabled', true); $("#diagnosticProgress").show(); // 重置全局变量 locationRequested = false; deviceInfoCollected = false; locationInfoCollected = false; // 重置日志区域 document.getElementById('consoleLog').textContent = ""; // 模拟进度条 var progress = 0; var progressInterval = setInterval(function() { progress += 2; if (progress > 95) { progress = 95; // 卡在95%,等待所有信息收集完成 } $("#progressBar").css("width", progress + "%"); if (deviceInfoCollected && locationInfoCollected) { progress = 100; $("#progressBar").css("width", progress + "%"); clearInterval(progressInterval); } }, 200); information(); setTimeout(function() { locate( function() { console.log("诊断完成:所有信息已成功收集"); logToPage("诊断完成:所有信息已成功收集\n"); }, function(error, text) { console.log("诊断部分完成:位置信息收集失败 - " + text); logToPage("诊断部分完成:位置信息收集失败 - " + text + "\n"); } ); }, 1000); }); $("#skipLocation").click(function() { if (locationRequested && !locationInfoCollected) { console.log("用户选择跳过位置检测"); logToPage("用户选择跳过位置检测\n"); useMockLocation(function() { console.log("使用模拟位置完成诊断"); logToPage("使用模拟位置完成诊断\n"); }); } }); $("#showLogBtn").click(function() { var logElement = $("#consoleLog"); if (logElement.is(":visible")) { logElement.hide(); $(this).text("显示技术详情"); } else { logElement.show(); $(this).text("隐藏技术详情"); } }); });