IP地址與整數(shù)之間的轉(zhuǎn)換實(shí)現(xiàn)代碼(asp.net)
二進(jìn)制除二即右移一位
1、IP地址轉(zhuǎn)換為整數(shù)
原理:IP地址每段可以看成是8位無(wú)符號(hào)整數(shù)即0-255,把每段拆分成一個(gè)二進(jìn)制形式組合起來(lái),然后把這個(gè)二進(jìn)制數(shù)轉(zhuǎn)變成
一個(gè)無(wú)符號(hào)32為整數(shù)。
舉例:一個(gè)ip地址為10.0.3.193
每段數(shù)字 相對(duì)應(yīng)的二進(jìn)制數(shù)
10 00001010
0 00000000
3 00000011
193 11000001
組合起來(lái)即為:00001010 00000000 00000011 11000001,轉(zhuǎn)換為10進(jìn)制就是:167773121,即該IP地址轉(zhuǎn)換后的數(shù)字就是它了。
public class Ip {
public static void main(String[] args) {
System.out.print(ip2int("10.0.3.193"));
}
public static long ip2int(String ip) {
String[] items = ip.split("\\.");
return Long.valueOf(items[0]) << 24
| Long.valueOf(items[1]) << 16
| Long.valueOf(items[2]) << 8
| Long.valueOf(items[3]);
}
}
2、整數(shù)轉(zhuǎn)換為IP地址
原理:把這個(gè)整數(shù)轉(zhuǎn)換成一個(gè)32位二進(jìn)制數(shù)。從左到右,每8位進(jìn)行一下分割,得到4段8位的二進(jìn)制數(shù),把這些二進(jìn)制數(shù)轉(zhuǎn)換成整數(shù)然后加上”?!本褪沁@個(gè)ip地址了
舉例:167773121
二進(jìn)制表示形式為:00001010 00000000 00000011 11000001
分割成四段:00001010,00001010,00000011,11000001,分別轉(zhuǎn)換為整數(shù)后加上“。”就得到了10.0.3.193。
public class Ip {
public static void main(String[] args) {
System.out.print(int2ip(167773121));
}
public static String int2ip(long ipInt) {
StringBuilder sb = new StringBuilder();
sb.append(ipInt & 0xFF).append(".");
sb.append((ipInt >> 8) & 0xFF).append(".");
sb.append((ipInt >> 16) & 0xFF).append(".");
sb.append((ipInt >> 24) & 0xFF);
return sb.toString();
}
}
相關(guān)文章
ASP.net中獲取客戶端參數(shù)操作系統(tǒng)信息
這篇文章主要介紹了ASP.net中如何獲取客戶端參數(shù)或操作系統(tǒng)信息,需要的朋友可以參考下2014-03-03Visual Studio Debugger七個(gè)鮮為人知的小功能
這篇文章主要為大家詳細(xì)介紹了Visual Studio Debugger七個(gè)鮮為人知的小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06ASP.NET動(dòng)態(tài)設(shè)置頁(yè)面標(biāo)題的方法詳解
這篇文章介紹了ASP.NET動(dòng)態(tài)設(shè)置頁(yè)面標(biāo)題的方法詳解,有需要的朋友可以參考一下2013-07-07Silverlight融合ajax實(shí)現(xiàn)前后臺(tái)數(shù)據(jù)交互
兩年前Silverlight 還未起名,故事發(fā)生在WPF/E 的年代里。07年8月在中軟實(shí)習(xí)時(shí),我承擔(dān)起了在. Net 中嵌入WPF/E 的任務(wù),目的是增強(qiáng)用戶體驗(yàn)。2009-05-05DataGridView自動(dòng)調(diào)整行高和行寬
根據(jù)數(shù)據(jù)內(nèi)容自動(dòng)調(diào)整列寬,根據(jù)數(shù)據(jù)內(nèi)容自動(dòng)調(diào)整行高2009-04-04asp.net 修飾符介紹(關(guān)于public、private、protected、internal)
這篇文章主要介紹了asp.net 修飾符介紹、關(guān)于public、private、protected、internal,需要的朋友可以參考下2014-08-08.net調(diào)用存儲(chǔ)過(guò)程詳細(xì)介紹
本文的數(shù)據(jù)庫(kù)用的是sql server自帶數(shù)據(jù)Northwind2013-04-04asp.net 動(dòng)態(tài)創(chuàng)建TextBox控件及狀態(tài)數(shù)據(jù)如何加載
接著上文Asp.net TextBox的TextChanged事件你真的清楚嗎?這里我們來(lái)說(shuō)說(shuō)狀態(tài)數(shù)據(jù)時(shí)如何加載的,需要的朋友可以參考下2012-12-12