我想通过js完成网络功能下的ping命令测试,有没有成功的例子?
其实就是利用img标签的load方法
function ping (ip) {
var img = new Image();
var start = new Date().getTime();
img.src = "http://" + ip + "?t=" + start;
var flag = false; //无法访问
img.onload = function () {
flag = true;
console.log('ok');
};
img.onerror = function () {
flag = true;
console.log('ok');
};
var timer = setTimeout(function () {
if (!flag) { //如果真的无法访问
flag = false;
console.log('failed');
}
}, 1500);
}
ping('10.8.16.184:8080')
8 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.8k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.9k 阅读
5 回答7.2k 阅读✓ 已解决
我可以给你一个具体的示例。假设你想要用js实现一个HTTP ping测试,你可以使用ping.js这个库,它可以让你用简单的代码来发送HTTP请求并获取响应时间,要在你的网页中引入ping.js这个库,你可以从GitHub上下载,或者使用CDN链接:
使用Ping对象来创建一个ping测试,传入一个目标地址和一个回调函数,回调函数会接收一个参数,表示响应时间(单位是毫秒):
如果你想要测试网络状况,用 JavaScript 实现真正的 ICMP ping 测试是不可能的,因为 JavaScript 没有直接访问底层网络协议的能力。但你可以通过发送 AJAX 请求到服务器来测试网络状况,由服务器执行 ping 测试并返回结果。但这样做有一些限制,比如只能测试服务器和目标地址之间的网络状况,并且需要在服务器端实现 ping 逻辑。如果你只需要进行简单的 HTTP ping 测试,可以通过发送 HTTP 请求到目标地址,并记录请求开始和结束时间来计算 ping 值。但这种方法也有不足,比如无法使用 ICMP 协议,结果可能不太准确,需要找到合适的目标地址等。因此,用 JavaScript 实现网络 ping 测试并不是最好的选择,你可以使用专业的在线工具或软件来获取更准确和全面的网络状况信息。