郭曉軍+薛恒
【摘要】網(wǎng)絡(luò)工具是進(jìn)行有效網(wǎng)絡(luò)管理的必要手段。針對(duì)當(dāng)前移動(dòng)智能設(shè)備端網(wǎng)絡(luò)工具研究不足問題,本文以Ping 、端口掃描和局域網(wǎng)喚醒三個(gè)典型網(wǎng)絡(luò)工具為例,選取Android Studio(AS)作為開發(fā)環(huán)境,指出其搭建過程關(guān)鍵步驟,并給出了三個(gè)工具開發(fā)過程中的要點(diǎn)和核心代碼,為今后此領(lǐng)域相關(guān)研究提供一定借鑒。
【關(guān)鍵詞】 網(wǎng)絡(luò)管理 Android Studio Ping 端口掃描Network Tools Design and Development for Android-based Mobile Device
Guo Xiaojun1,2, Xue Heng1,2
(1 School of Information Engineering , Xizang Minzu University, Xianyang Shaanxi, 712082, China)
(2 XiZang Key Laboratory of Optical Information Processing and Visualization Technology, Xianyang Shaanxi, 712082, China)
Abstract:Network tools are the necessary means to do network management effectively. For the lack of current research about network tools on mobile intelligent device, this paper takes three typical network tools: ping, port scan and wake on LAN, as examples, chooses Android Studio as development environment and indicates critical steps during its setup process. Also the key notes and the core codes of these three network tools development process are presented, which can provide definite reference value for related research in this topic.
Key words:Network management; Android Studio; Ping; Port Scan;
一、引言
智能手機(jī)、平板等設(shè)備對(duì)移動(dòng)網(wǎng)絡(luò)的連通性、穩(wěn)定性及健壯性方面要求較高。因此研究與開發(fā)基于移動(dòng)智能終端的網(wǎng)絡(luò)工具是很有必要的。
本文以智能移動(dòng)端操作系統(tǒng)Android為例,利用搭建的AS開發(fā)環(huán)境,設(shè)計(jì)和實(shí)現(xiàn)了三個(gè)網(wǎng)絡(luò)工具:Ping、端口掃描(PScan)和遠(yuǎn)程喚醒工具(Won),對(duì)基于移動(dòng)智能終端網(wǎng)絡(luò)工具開發(fā)過程進(jìn)行了初步嘗試。
二、Android Studio搭建關(guān)鍵步驟
AS是Google在2013年5月16日的I/O大會(huì)上發(fā)布的 Android應(yīng)用程序基礎(chǔ)開發(fā)環(huán)境。此處以AS 2.0版本為例,給出其在Windows 7(64bit)上搭建過程中的關(guān)鍵步驟。
(1) Java開發(fā)環(huán)境配置。
在下載JDK后就可以雙擊直接安裝,然后右擊“計(jì)算機(jī)”選擇“系統(tǒng)屬性”中的“環(huán)境變量”,選擇“系統(tǒng)變量”中的“Path”進(jìn)行編輯,添加JDK安裝路徑(如C:\Program Files\Java\jdk1.7.0_79),以完成Java開發(fā)環(huán)境配置。
(2)AS中SDK配置。
AS 2.0可從官網(wǎng)上下載,其安裝過程與普通Windows應(yīng)用程序安裝過程類似。在安裝完成后,可打開“tool”?Android? “SDK Manager”? “Lauch Standalone SDK Manager”, 打開“Android SDK Manager”對(duì)話框,可針對(duì)不同版本的Android系統(tǒng)來安裝不同的SDK工具包。
三、典型網(wǎng)絡(luò)工具開發(fā)要點(diǎn)
本文此處選取三個(gè)典型代表工具:Ping命令、端口掃描PScan及局域網(wǎng)喚醒工具WoL,著重闡述它們?cè)贏S中開發(fā)過程的要點(diǎn)。
3.1 Ping
Ping工具主要用于確定本地終端與網(wǎng)絡(luò)中其它設(shè)備的連通情況,它向指定的IP地址或主機(jī)名發(fā)送ICMP(Internet Control Message Protocol)數(shù)據(jù)包,通過返回的數(shù)據(jù)包信息來判斷網(wǎng)絡(luò)的連接狀況。其工作流程:創(chuàng)建通信套接字?將地址、端口信息與套接字綁定?構(gòu)建IP包頭與ICMP包頭?發(fā)送構(gòu)建的數(shù)據(jù)包?接收對(duì)方主機(jī)的回應(yīng)-->給出程序反饋信息。
本文此處利用Android平臺(tái)的類Linux特點(diǎn),采用其內(nèi)核中內(nèi)置的ping命令來實(shí)現(xiàn)Ping命令工具,主要用到Java對(duì)IP地址的封裝類InetAddress,其實(shí)例對(duì)象包含數(shù)字形式的IP地址,也可以包含主機(jī)名稱。InetAddress類提供了將主機(jī)名解析為IP地址的方法,可通過本機(jī)器配置或者DNS(Domain Name System)來實(shí)現(xiàn)。
3.2 端口掃描PScan
端口掃描是指向目標(biāo)網(wǎng)絡(luò)設(shè)備發(fā)送一組報(bào)文消息,了解其提供的機(jī)網(wǎng)絡(luò)服務(wù)類型及相關(guān)信息(網(wǎng)絡(luò)服務(wù)均與端口號(hào)相關(guān)),以試圖侵入該網(wǎng)絡(luò)設(shè)備。
本文此處采用異步套接字(Socket)掃描方法。通過Android平臺(tái)提供的Socket類與目標(biāo)網(wǎng)絡(luò)設(shè)備的每個(gè)的端口建立TCP連接。若該端口處于偵聽狀態(tài),那么連接成功并返回相應(yīng)信息,否則,認(rèn)為端口不可用。建立TCP Socket后的異步端口連接核心代碼如圖1所示。
3.3 局域網(wǎng)喚醒工具WoL
WoL(Wake on Lan)功能是指通過過局域網(wǎng)的對(duì)某主機(jī)發(fā)令,使其從休眠狀態(tài)喚醒、恢復(fù)為運(yùn)作狀態(tài)。該工具實(shí)現(xiàn)的關(guān)鍵是構(gòu)造魔法數(shù)據(jù)包。該數(shù)據(jù)包的應(yīng)用層內(nèi)容以連續(xù)的“FF FF FF FF FF FF”作為開始,其后跟隨目標(biāo)主機(jī)MAC地址信息、4~6字節(jié)密碼信息等,并將此包通過send()方法發(fā)送至局域網(wǎng)中。
當(dāng)目標(biāo)主機(jī)網(wǎng)卡偵測(cè)和解析該包內(nèi)容中的MAC地址、密碼等,若與自身MAC地址、密碼吻合,就會(huì)引導(dǎo)目標(biāo)主機(jī)喚醒,核心代碼如圖2所示。
需要注意的是,若對(duì)目標(biāo)主機(jī)實(shí)施WoL功能,必須在目標(biāo)主機(jī)的BIOS設(shè)置中啟用"Wake On Lan”和” WakeUp By PCI Card "功能。
三、結(jié)論
鑒于移動(dòng)智能設(shè)備對(duì)網(wǎng)絡(luò)性能需求的普遍性,本文在AS環(huán)境下 ,設(shè)計(jì)和開發(fā)了基于Android移動(dòng)端的 Ping、Pscan和WoL三個(gè)網(wǎng)絡(luò)工具。下一步將在提升這些工具性能、改善可交互性等方面進(jìn)行重點(diǎn)研究。
參 考 文 獻(xiàn)
[1] Android Tools[EB/OL]. http://www.android-studio.org/.2015