AndroidNetworkTools - 实用的Android网络工具集合

jopen 9年前

Android Network Tools

AndroidNetworkTools - 实用的Android网络工具集合,包括:

  • Ping
  • 端口扫描
  • 子网工具(找到本地网络上的设备)
  • Wake-On-Lan网络唤醒
  • & More :)

Usage

Add as dependency

This library is not yet released in Maven Central, until then you can add as a library module or use JitPack.io

add remote maven url

repositories {          maven {              url "https://jitpack.io"          }      }

then add a library dependency. Remember to check for latest release here

dependencies {          compile 'com.github.stealthcopter:AndroidNetworkTools:0.1.1'      }

Add permission

Requires internet permission (obviously...)

<uses-permission android:name="android.permission.INTERNET" />

Ping

Uses the native ping binary if avaliable on the device (some devices come without it) and falls back to a TCP request on port 7 (echo request) if not.

// Synchronously        PingResult pingResult = Ping.onAddress("192.168.0.1").setTimeOutMillis(1000).doPing();         // Asynchronously       Ping.onAddress("192.168.0.1").setTimeOutMillis(1000).setTimes(5).doPing(new Ping.PingListener() {        @Override        public void onResult(PingResult pingResult) {          ...        }      });

Note: If we do have to fall back to using TCP port 7 (the java way) to detect devices we will find significantly less than with the native ping binary. If this is an issue you could consider adding a ping binary to your application or device so that it is always avaliable.

Port Scanning

A simple java based TCP port scanner, fast and easy to use.

// Synchronously       ArrayList<Integer> openPorts = PortScan.onAddress("192.168.0.1").setPort(21).doScan();        // Asynchronously      PortScan.onAddress("192.168.0.1").setTimeOutMillis(1000).setPortsAll().doScan(new PortScan.PortListener() {        @Override        public void onResult(int portNo, boolean open) {          if (open) // Stub: found open port        }          @Override        public void onFinished(ArrayList<Integer> openPorts) {      // Stub: finished scanning        }      });

Note: If you want a more advanced portscanner you should consider compiling nmap into your project and using that instead.

Wake-On-Lan

Sends a Wake-on-Lan packet to the IP / MAC address

String ipAddress = "192.168.0.1";        String macAddress = "01:23:45:67:89:ab";        WakeOnLan.sendWakeOnLan(ipAddress, macAddress);

Misc

Other useful methods:

String ipAddress = "192.168.0.1";        String macAddress = ARPInfo.getMacFromArpCache(ipAddress);

Building

It's a standard gradle project.

Contributing

I welcome pull requests, issues and feedback.

  • Fork it
  • Create your feature branch (git checkout -b my-new-feature)
  • Commit your changes (git commit -am 'Added some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request

项目地址: https://github.com/stealthcopter/AndroidNetworkTools