百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
I

is-online

> 编程语言
开源

检查网络连接是否正常

1.4K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

检查网络连接是否正常

is-online

Check if the internet connection is up

Works in Node.js and the browser (with a bundler).

In the browser, there is already navigator.onLine, but it's useless as it only tells you if there's a local connection, and not whether the internet is accessible.

Install

npm install is-online

Requirements

  • Node.js 20+
  • Works in modern browsers when bundled (requires fetch API support)

Usage

import isOnline from 'is-online';

console.log(await isOnline());
//=> true

With timeout

import isOnline from 'is-online';

console.log(await isOnline({timeout: 10_000}));
//=> true

With abort signal

import isOnline from 'is-online';

const controller = new AbortController();

setTimeout(() => {
	controller.abort();
}, 500);

const result = await isOnline({
	timeout: 3000,
	signal: controller.signal
});

console.log(result);
//=> false

With fallback URLs

import isOnline from 'is-online';

const result = await isOnline({
	fallbackUrls: [
		'https://www.google.com',
		'https://www.github.com',
		'http://example.com'
	]
});

console.log(result);
//=> true

API

isOnline(options?)

Returns a Promise<boolean> that resolves to true if the internet connection is up, false otherwise.

options

Type: object

timeout

Type: number
Default: 5000

Milliseconds to wait for a server to respond.

signal

Type: AbortSignal

An AbortSignal to abort the operation.

When the signal is aborted, the promise will resolve to false.

ipVersion

Type: number
Values: 4 | 6
Default: 4

The Internet Protocol version to use.

This is an advanced option that is usually not necessary to be set, but it can prove useful to specifically assert IPv6 connectivity.

fallbackUrls

Type: string[]

Fallback URLs to check for connectivity.

Only HTTP and HTTPS URLs are supported. In Node.js, these URLs are checked only if all default connectivity checks fail. In the browser, these URLs are checked in parallel with the default checks for better resilience against ad blockers.

How it works

The following checks are run in parallel:

Node.js:

  • Retrieve icanhazip.com (or ipify.org as fallback) via HTTPS.
  • Query myip.opendns.com and o-o.myaddr.l.google.com DNS entries.
  • Retrieve Apple's Captive Portal test page (this is what iOS does).
  • Check Cloudflare's website via HTTPS.

Browser:

  • Retrieve icanhazip.com (or ipify.org as fallback) via HTTPS.

When any check succeeds, the returned Promise is resolved to true.

If all the above checks fail and you have provided fallbackUrls, those will be checked as a fallback. The URLs are checked by making HTTP/HTTPS requests (HEAD requests when possible, with GET as fallback).

Diagnostics

The package publishes diagnostic information when connectivity checks fail using Node.js Diagnostics Channel. This is useful for debugging network issues and is only available in Node.js environments.

import {subscribe} from 'node:diagnostics_channel';
import isOnline from 'is-online';

// Subscribe to failure events
subscribe('is-online:connectivity-check', message => {
	console.log('Failed URL:', message.url);
	console.log('Error:', message.error);
});

await isOnline();

Each failure event includes:

  • timestamp - When the failure occurred
  • url - The specific URL that failed
  • error - Error details (name, message, code)

Proxy support

To make it work through proxies, you need to set up global-agent.

Maintainers

  • Sindre Sorhus
  • silverwind

Related

  • is-online-cli - CLI for this module
  • is-reachable - Check if servers are reachable

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Node.js 20+
  • •Works in modern browsers when bundled (requires fetch API support)
  • •Retrieve icanhazip.com (or ipify.org as fallback) via HTTPS.
  • •Query myip.opendns.com and o-o.myaddr.l.google.com DNS entries.
  • •Retrieve Apple's Captive Portal test page (this is what iOS does).
  • •Check Cloudflare's website via HTTPS.
  • •Retrieve icanhazip.com (or ipify.org as fallback) via HTTPS.
  • •timestamp - When the failure occurred
  • •url - The specific URL that failed
  • •error - Error details (name, message, code)

> 标签

JavaScriptbrowserconnectivitydetectinternet

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言