国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解讀Asp.net教程:設(shè)計IP地址屏蔽功能_.Net教程

2024-07-10 12:51:26
字體:
供稿:網(wǎng)友

推薦:.Net教程之HTTP狀態(tài)碼200,301,302
跳轉(zhuǎn)非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會用得到。跳轉(zhuǎn)的目的本來很簡單,就是當(dāng)用戶或系統(tǒng)需要時從一個頁面轉(zhuǎn)向另一個頁面,但自從有了

“IP地址的長度為32位,分為4段,每段8位,用十進制數(shù)字表示,每段數(shù)字范圍為0~255,段與段之間用句點隔開。”

由此我們了解到,IP地址實際上是一個32位正整數(shù),在C#中可以使用uint類型來表示,但SQLServer數(shù)據(jù)庫里好像沒有對應(yīng)的類型;轉(zhuǎn)而使用數(shù)據(jù)庫支持的int類型的話,則會出現(xiàn)溢出的情況;因此我們做出妥協(xié):使用long(bigint)類型。

以下為引用的內(nèi)容:

TIP:

int取值范圍:-2,147,483,648 到 2,147,483,647

uint取值范圍:0 到 4,294,967,295

long取值范圍:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

那么如何將IP地址轉(zhuǎn)為整數(shù)呢?我們看到IPAddress類中有一個“[否決的]”實例屬性Address,這個屬性的確可以返回一個long值,但是測試一下,得到的數(shù)據(jù)確實這樣的:

以下為引用的內(nèi)容:

“127.0.0.1” -> 16777343

“127.0.0.2” –> 33554559

的確該讓它“否決”,這樣的整數(shù)對我們來說毫無意義,我們是無法通過這樣的方法比較傳入的IP是否介于兩個IP值之間的。

那么只有自己動手了,我們將通過IPAddress類的GetAddressBytes()實例方法獲取IP的4個段的值,然后將它們組合為一個整數(shù),下面將提供這個擴展方法:

以下為引用的內(nèi)容:

/// <summary>

/// 將IP地址轉(zhuǎn)為整數(shù)形式

/// </summary>

/// <returns>整數(shù)</returns>

public static long 轉(zhuǎn)換為整數(shù)(this IPAddress ip)

{
int x = 3;

long o = 0;

foreach (byte f in ip.GetAddressBytes())

{

o = (long)f << 8 * x--;

}

return o;
}

你可以這樣使用這個擴展方法:

IPAddress.Parse("127.0.0.1").轉(zhuǎn)換為整數(shù)()

分享:解析.NET程序員 Ruby核心語法入門
本文的目的是為了找出為什么.NET程序員都想學(xué)習(xí)并使用Ruby,并探索Ruby語言的核心語法。微軟的IronRuby項目為Windows平臺帶來了強大的動態(tài)語言,Ruby編程語言是一個現(xiàn)代的,面向?qū)ο蟮?/p>

共4頁上一頁1234下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 科尔| 星子县| 古丈县| 中牟县| 高碑店市| 广平县| 长兴县| 平顺县| 曲靖市| 廉江市| 柳河县| 青川县| 顺平县| 保靖县| 五大连池市| 大余县| 沿河| 昌乐县| 涟水县| 舟山市| 乳源| 铁力市| 绥棱县| 伊宁市| 璧山县| 红安县| 合水县| 从江县| 安丘市| 忻城县| 铜陵市| 淄博市| 托里县| 博爱县| 丁青县| 合水县| 罗定市| 泰州市| 贵阳市| 黔江区| 定襄县|