一:背景:在生產中,我們會遇到根據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...