面向Android移动端网络工具的设计与开发

中国新通信 / 2018年12月21日 06:40

手机

郭晓军+薛恒

【摘要】网络工具是进行有效网络管理的必要手段。针对当前移动智能设备端网络工具研究不足问题,本文以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

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。