目前我需要能夠分辨出私人地址和可到達網頁之間的區別。如何識別node.js中的IPV6私有地址和回送地址?
我需要能夠測試以下:
現在給你的IPv6列表的接口上,並需要知道哪些地址是網絡訪問。這些地址都可能是非私人的。如果地址改變了,最好能夠跟蹤哪一個(我可以在使用私有地址測試方法之後找出它)。
這是用JavaScript編寫的node.js
目前我需要能夠分辨出私人地址和可到達網頁之間的區別。如何識別node.js中的IPV6私有地址和回送地址?
我需要能夠測試以下:
現在給你的IPv6列表的接口上,並需要知道哪些地址是網絡訪問。這些地址都可能是非私人的。如果地址改變了,最好能夠跟蹤哪一個(我可以在使用私有地址測試方法之後找出它)。
這是用JavaScript編寫的node.js
什麼你要找的是IPv6 範圍:「網絡可達」是在全球範圍地址。該範圍描述如下:
http://en.wikipedia.org/wiki/IPv6_address#IPv6_address_scopes
你可以自己解析地址 - 或者你可以保存自己一些時間和使用的IPv6模塊(npm install ipv6 --save
):
var v6 = require('ipv6').v6;
var addr = new v6.Address('2001:db8:85a3:8d3:1319:8a2e:370:7348');
if(addr.getScope()==='Global'){
console.log('valid global ipv6 address');
}
免責聲明:我不對IPv6的真正瞭解不多......但我正在搞清楚。我認爲有用的不同範圍的討論,順便說一句:
我有以下假設工作:
......有了這些假設,它應該相當容易。根據to this page(鏈接here),您只需測試地址以fd1
開頭,或許使用正則表達式/^fd1/
來確認它是私人地址。
同樣,根據this page,您可以測試0:0:0:0:0:0:0:1
或::1
的環回地址。
通過您的測試fe80地址是全球性的。 – arnt
Ethan的回答比我的要好,我不能承認知道很多關於ipv6地址的知識,正如我的研究表明的那樣,這就是我所關聯的,儘管我現在意識到我認爲我誤解了我的第一個鏈接,因爲它似乎隨機生成一個合規的地址,而不是提供更一般的信息。 – Jason