Kecewa dengan kurangnya api jaringan yang bagus di Android/Java, saya mengembangkan kumpulan alat jaringan yang berguna untuk pengembangan Android sehari-hari.
Javadoc harus menyediakan semua informasi yang diperlukan untuk memahami metode ini, tetapi jika tidak, jangan ragu untuk menambahkan masalah di github dan saya akan menjawab pertanyaan apa pun! :)
Jika Anda menyukai apa yang saya lakukan dengan Alat Jaringan Android dan proyek saya yang lain, kini Anda dapat mendukung pekerjaan saya secara langsung! Dengan membelikan saya kopi ☕, Anda tidak hanya memenuhi kebutuhan kafein saya – Anda juga membantu saya mendedikasikan lebih banyak waktu untuk mengembangkan dan meningkatkan proyek sumber terbuka ini. Setiap kopi berarti dan membawa lebih banyak inovasi ke dunia keamanan siber. Terima kasih atas dukungan Anda – ini sangat berarti bagi saya dan komunitas open source!
Contoh aplikasi dipublikasikan di Google Play & F-Droid untuk memungkinkan Anda menguji perpustakaan dengan cepat dan mudah. Menikmati! Dan mohon berikan masukan kepada kami jika pengujian Anda menghasilkan hasil yang berbeda.
Pustaka ini belum dirilis di Maven Central, hingga saat itu Anda dapat menambahkannya sebagai modul pustaka atau menggunakan JitPack.io
tambahkan url pakar jarak jauh
repositories {
maven {
url " https://jitpack.io "
}
}
lalu tambahkan ketergantungan perpustakaan. Ingatlah untuk memeriksa rilis terbaru di sini
dependencies {
compile ' com.github.stealthcopter:AndroidNetworkTools:0.4.5.3 '
}
Membutuhkan izin internet (tentu saja...)
< uses-permission android : name = " android.permission.INTERNET " />
Pemindai port TCP / UDP berbasis java sederhana, cepat dan mudah digunakan. Secara default, ia akan mencoba menebak batas waktu dan thread terbaik untuk digunakan saat memindai tergantung pada apakah alamatnya terlihat seperti localhost, jaringan lokal, atau jarak jauh. Anda dapat menimpanya sendiri dengan memanggil setNoThreads() dan setTimeoutMillis()
// Synchronously
ArrayList < Integer > openPorts = PortScan . onAddress ( "192.168.0.1" ). setMethodUDP (). setPort ( 21 ). doScan ();
// Asynchronously
PortScan . onAddress ( "192.168.0.1" ). setTimeOutMillis ( 1000 ). setPortsAll (). setMethodTCP (). 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
}
});
Menemukan perangkat yang merespons ping yang berada di subnet yang sama dengan perangkat saat ini. Anda dapat mengatur batas waktu ping dengan setTimeOutMillis() [default 2500] dan jumlah thread dengan setNoThreads() [default 255]
// Asynchronously
SubnetDevices.fromLocalAddress().findDevices(new SubnetDevices.OnSubnetDeviceFound() {
@Override
public void onDeviceFound(Device device) {
// Stub: Found subnet device
}
@Override
public void onFinished(ArrayList<Device> devicesFound) {
// Stub: Finished scanning
}
});
Menggunakan biner ping asli jika tersedia di perangkat (beberapa perangkat tidak memilikinya) dan kembali ke permintaan TCP pada port 7 (permintaan gema) jika tidak.
// 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 ) {
...
}
});
Catatan: Jika kita harus kembali menggunakan TCP port 7 (cara java) untuk mendeteksi perangkat, kita akan menemukan jauh lebih sedikit dibandingkan dengan biner ping asli. Jika ini merupakan masalah, Anda dapat mempertimbangkan untuk menambahkan biner ping ke aplikasi atau perangkat Anda agar selalu tersedia.
Catatan: Jika Anda menginginkan portscanner yang lebih canggih, Anda harus mempertimbangkan untuk mengkompilasi nmap ke dalam proyek Anda dan menggunakannya.
Mengirim paket Wake-on-Lan ke alamat IP/MAC
String ipAddress = "192.168.0.1" ;
String macAddress = "01:23:45:67:89:ab" ;
WakeOnLan . sendWakeOnLan ( ipAddress , macAddress );
Metode bermanfaat lainnya:
// Get a MAC Address from an IP address in the ARP Cache
String ipAddress = "192.168.0.1" ;
String macAddress = ARPInfo . getMacFromArpCache ( ipAddress );
Ini adalah proyek tingkat standar.
Saya menyambut permintaan penarikan, masalah, dan masukan.
git checkout -b my-new-feature
)git commit -am 'Added some feature'
)git push origin my-new-feature
)