ipv6掩碼格式解析

2022-03-12 01:56:49 字數 1578 閱讀 4366

一:背景:在生產中,我們會遇到根據ipv6的位址判斷該ipv6屬於哪個地市。

首先我們需要拿到全國的ipv6位址分配表。位址分配表一般是用掩碼表示的。例如

2001:250:100::/40 中國 中國 * * 教育網 36.894402 104.166000 asia/chongqing utc+8 * 86 cn ap

2001:250:200::/48 中國 北京 北京 清華大學網路科學與網路空間研究院 教育網 39.904989 116.405285 asia/shanghai utc+8 110000 86 cn ap

2001:250:201::/48 中國 北京 北京 北京大學 教育網 39.904989 116.405285 asia/shanghai utc+8 110000 86 cn ap

等,如第一行 2001:250:100::/40 就表示 區段內的ip都屬於中國 * * 教育網。

1.冒分十六進製制表示法格式為x:x:x:x:x:x:x:x

2.0位壓縮表示法,ff01:0:0:0:0:0:0:1101 → ff01::1101

3.內嵌ipv4位址表示法

為了實現ipv4-ipv6互通,ipv4位址會嵌入ipv6位址中,此時位址常表示為:x:x:x:x:x:x:d.d.d.d,前96b採用冒分十六進製制表示,而最後32b位址則使用ipv4的點分十進位制表示,例如::192.168.0.1與::ffff:192.168.0.1

public class ipv6format

return binarysb.tostring();

}public string formatipv6(string ipv6string)

}下面的**實現了輸入使用者的ipv6位址輸出標準冒分十六進製制表示法,並且補足0。

public class udfipv6format extends udf

/*** format ipv6 to standard format

*/public string evaluate(text n)

string ipv6string = n.tostring();

stringbuilder sb = new stringbuilder();

if (ipv6string.contains("."))

}int toinsertcount = 7 - notnullcount;

fillipv6(sb, ipv6items, toinsertcount);

} else

}int toinsertcount = 8 - notnullcount;

fillipv6(sb, ipv6items, toinsertcount);

}string ipv6inhex = binarytohexinip(sb.tostring());

return ipv6inhex;

}private string fillbinary(string input) else

}return binarysb.tostring();

}public static void main(string args)

}

IPv6技術簡要解析

ipv6是internet protocol version 6的縮寫,其中internet protocol譯為 網際網路協議 ipv6是ietf 網際網路工程任務組,internet engineering task force 設計的用於替代現行版本ip協議 ipv4 的下一代ip協議。目前i...

IPv6技術 什麼是IPv6

ipv6技術 1 引言 ipv4位址即將耗盡,因此需要移轉至ipv6的討論,過去數年來一直不曾中斷。ipv4和ipv6在報文結構 報文字段意義以及位址配置諸多方面都有顯著的不同,這給從ipv4到ipv6過渡時期internet的運作帶來了極大的困難。當前接入網技術上幾乎所有的應用都是構建在ipv4上...

IPv6 位址格式

ipv6 位址大小為 128 位。首選的 ipv6 位址表示為 x x x x x x x x 其中每個 x 是代表乙個 4 位的十六進製制數字。ipv6 位址範圍從 0000 0000 0000 0000 0000 0000 0000 0000 至 ffff ffff ffff ffff ffff...