• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞 > 如何驗(yàn)證IP 地址的有效性
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞>如何驗(yàn)證IP 地址的有效性

如何驗(yàn)證IP 地址的有效性

來(lái)源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-26        熱度:41℃        返回列表

【實(shí)例描述】

IP 地址是網(wǎng)絡(luò)上每臺(tái)計(jì)算機(jī)的標(biāo)識(shí),在瀏覽器中輸入的網(wǎng)址也是要經(jīng)過(guò)DNS 服務(wù)器轉(zhuǎn)換

為IP

地址才能找到服務(wù)器的,在很多網(wǎng)絡(luò)程序中要求輸入服務(wù)器IP 地址或者對(duì)方連接的IP 地

址,IP 地址的錯(cuò)誤輸入將使程序無(wú)法運(yùn)行。本實(shí)例將實(shí)現(xiàn)對(duì)IP

地址的驗(yàn)證功能,實(shí)例的運(yùn)行

效果如圖4.14 所示。

【實(shí)現(xiàn)過(guò)程】

(1)在Eclipse 中新建項(xiàng)目CheckIP,并在其中創(chuàng)建一個(gè)CheckIP.java

文件。在該類的主方

法中創(chuàng)建標(biāo)準(zhǔn)輸入流的掃描器對(duì)象,接收用戶輸入的IP 地址。核心代碼如下所示:

protected void

do_button_actionPerformed(ActionEvent e) {

String text = ipField.getText();

// 獲取用戶輸入

String info = matches(text); // 對(duì)輸入文本進(jìn)行IP

驗(yàn)證

showMessageDialog(null, info); // 用對(duì)話框輸出驗(yàn)證結(jié)果

}

(2)編寫IP

地址的mathches()方法,該方法利用正則表達(dá)式對(duì)輸入的字符串進(jìn)行驗(yàn)證,并

返回驗(yàn)證結(jié)果,關(guān)鍵代碼如下所示。

public String

matches(String text) {

if (text != null && !text.isEmpty()) {

//

定義正則表達(dá)式

String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

+

"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+

"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+

"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";

// 判斷IP 地址是否與正則表達(dá)式匹配

if

(text.matches(regex)) {

// 返回判斷信息

return text + "\n 是一個(gè)合法的IP 地址!";

}

else {

// 返回判斷信息

return text + "\n 不是一個(gè)合法的IP 地址!";

}

}

//

返回判斷信息

return "請(qǐng)輸入要驗(yàn)證的IP 地址!";

}

【代碼解析】

本實(shí)例的關(guān)鍵點(diǎn)在于IP

地址格式與數(shù)字范圍的驗(yàn)證,用戶在輸入IP 地址時(shí),程序可以獲

取的只有字符串類型,所以本實(shí)例利用字符串的靈活性和正則表達(dá)式搭配進(jìn)行IP

地址格式與

范圍的驗(yàn)證。該方法是String 字符串類的方法,用于判斷字符串與制定的正則表達(dá)式是否匹配。

其聲明語(yǔ)法如下:

public

boolean mathches(String regex);

Java 程序設(shè)計(jì)經(jīng)典300


XXX

VIII

【知識(shí)擴(kuò)展】

在正則表達(dá)式中,“.”代表任何一個(gè)字符,因此在正則表達(dá)式中如果想使用普通意義的點(diǎn)

字符“.”,必須使用轉(zhuǎn)義字符“\”。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部