我有一个Node.js应用程序。我正在尝试检测连通性。我知道如何通过ping Google来检查是否可以连接到互联网。但是,我很好奇是否可以在查看是否可以访问外部世界之前先检查是否已连接到网络(即路由器)。
有没有一种方法可以检查我是否已连接到网络,但不一定连接到外部世界?如果可以,怎么办?
我知道在JavaScript中,我可以检查navigator.onLine
属性。但是,navigator
属性在Node中不存在。
答案 0 :(得分:0)
我猜您最好的选择将是os.networkInterfaces()
,如node.js documentation中所述:
os.networkInterfaces()方法返回仅包含一个对象 已分配了网络地址的网络接口。
返回的对象上的每个键都标识一个网络接口。的 关联值是一个对象数组,每个对象描述一个分配的对象 网络地址。
在分配的网络地址对象上可用的属性 包括: ...
- 内部
-如果网络接口是环回或不可远程访问的类似接口,则为true;否则为false。否则为假
因此,您需要查找internal
为假的接口。