郭曉軍+薛恒
【摘要】網絡工具是進行有效網絡管理的必要手段。針對當前移動智能設備端網絡工具研究不足問題,本文以Ping 、端口掃描和局域網喚醒三個典型網絡工具為例,選取Android Studio(AS)作為開發環境,指出其搭建過程關鍵步驟,并給出了三個工具開發過程中的要點和核心代碼,為今后此領域相關研究提供一定借鑒。
【關鍵詞】 網絡管理 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;
一、引言
智能手機、平板等設備對移動網絡的連通性、穩定性及健壯性方面要求較高。因此研究與開發基于移動智能終端的網絡工具是很有必要的。
本文以智能移動端操作系統Android為例,利用搭建的AS開發環境,設計和實現了三個網絡工具:Ping、端口掃描(PScan)和遠程喚醒工具(Won),對基于移動智能終端網絡工具開發過程進行了初步嘗試。
二、Android Studio搭建關鍵步驟
AS是Google在2013年5月16日的I/O大會上發布的 Android應用程序基礎開發環境。此處以AS 2.0版本為例,給出其在Windows 7(64bit)上搭建過程中的關鍵步驟。
(1) Java開發環境配置。
在下載JDK后就可以雙擊直接安裝,然后右擊“計算機”選擇“系統屬性”中的“環境變量”,選擇“系統變量”中的“Path”進行編輯,添加JDK安裝路徑(如C:\Program Files\Java\jdk1.7.0_79),以完成Java開發環境配置。
(2)AS中SDK配置。
AS 2.0可從官網上下載,其安裝過程與普通Windows應用程序安裝過程類似。在安裝完成后,可打開“tool”?Android? “SDK Manager”? “Lauch Standalone SDK Manager”, 打開“Android SDK Manager”對話框,可針對不同版本的Android系統來安裝不同的SDK工具包。
三、典型網絡工具開發要點
本文此處選取三個典型代表工具:Ping命令、端口掃描PScan及局域網喚醒工具WoL,著重闡述它們在AS中開發過程的要點。
3.1 Ping
Ping工具主要用于確定本地終端與網絡中其它設備的連通情況,它向指定的IP地址或主機名發送ICMP(Internet Control Message Protocol)數據包,通過返回的數據包信息來判斷網絡的連接狀況。其工作流程:創建通信套接字?將地址、端口信息與套接字綁定?構建IP包頭與ICMP包頭?發送構建的數據包?接收對方主機的回應-->給出程序反饋信息。
本文此處利用Android平臺的類Linux特點,采用其內核中內置的ping命令來實現Ping命令工具,主要用到Java對IP地址的封裝類InetAddress,其實例對象包含數字形式的IP地址,也可以包含主機名稱。InetAddress類提供了將主機名解析為IP地址的方法,可通過本機器配置或者DNS(Domain Name System)來實現。
3.2 端口掃描PScan
端口掃描是指向目標網絡設備發送一組報文消息,了解其提供的機網絡服務類型及相關信息(網絡服務均與端口號相關),以試圖侵入該網絡設備。
本文此處采用異步套接字(Socket)掃描方法。通過Android平臺提供的Socket類與目標網絡設備的每個的端口建立TCP連接。若該端口處于偵聽狀態,那么連接成功并返回相應信息,否則,認為端口不可用。建立TCP Socket后的異步端口連接核心代碼如圖1所示。
3.3 局域網喚醒工具WoL
WoL(Wake on Lan)功能是指通過過局域網的對某主機發令,使其從休眠狀態喚醒、恢復為運作狀態。該工具實現的關鍵是構造魔法數據包。該數據包的應用層內容以連續的“FF FF FF FF FF FF”作為開始,其后跟隨目標主機MAC地址信息、4~6字節密碼信息等,并將此包通過send()方法發送至局域網中。
當目標主機網卡偵測和解析該包內容中的MAC地址、密碼等,若與自身MAC地址、密碼吻合,就會引導目標主機喚醒,核心代碼如圖2所示。
需要注意的是,若對目標主機實施WoL功能,必須在目標主機的BIOS設置中啟用"Wake On Lan”和” WakeUp By PCI Card "功能。
三、結論
鑒于移動智能設備對網絡性能需求的普遍性,本文在AS環境下 ,設計和開發了基于Android移動端的 Ping、Pscan和WoL三個網絡工具。下一步將在提升這些工具性能、改善可交互性等方面進行重點研究。
參 考 文 獻
[1] Android Tools[EB/OL]. http://www.android-studio.org/.2015