簡體   English   中英

如何知道給定的IPV6地址是否與本地計算機屬於同一子網

[英]How to know if given IPV6 address belongs to the same subnet as local machine

目前,我有一個帶有IP地址和子網掩碼的ac函數,並檢查給定的ipv4是否為私有/公共。

它通過以下邏輯來匹配子網:

(local ipv4 address && local subnetmask) == (given ipv4 && given subnetmask)

可以為ipv6編寫什么邏輯? 我可以編寫一個函數來接收ip和子網前綴。 我可以獲取本地子網前綴嗎?

我要確定兩個主機是否在同一子網上,同時使用它們的地址和前綴長度(子網掩碼)。

如果前綴長度不同,則它們不在同一網絡上。

如果前綴長度相同,則取該長度(很可能為64,因此我們假設為該長度),並將兩個地址的前64位相互比較。 如果它們相同,則它們都在同一網絡上。

基本上,與IPv4相同,只是使比特不成為前綴。 使用128個地址,將其實現為一次循環比較一次比較4位(比較十六進制表示法)或一次比較8位(比較解析的字節)可能會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM