Как получить SSID беспроводной точки доступа сети через Java?
Я новичок в программировании на Java, и мой последний годовой проект основан на инструменте обнаружения точек доступа Rogue, и мне нужно узнать, как я могу получить SSID из Java-кода существующих сетей Wi-Fi?
например: скажи, что я на своем ноутбуке. Мне нужна программа, чтобы показать, сколько SSID передают SSIDS и имена! (через встроенный wifi адаптер в ноутбуке).
Спасибо.
1 ответ
Java - это язык программирования высокого уровня, независимый от платформы. Сетевые настройки и то, как вы ими управляете, будут зависеть от вашей операционной системы, и, насколько мне известно, не существует простого способа или API для этого, но я попытался написать код, который может быть полезен для вас.
Код:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package network;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Electron-Eddine
*/
public class Network {
ArrayList<String> localNetworks = new ArrayList<>();
public static void main(String[] args) throws IOException {
new network.Network().display(new Network().getNetwokrs());
new Network().searchSystemNetwork(new Network().getNetwokrs());
}
public ArrayList<String> getNetwokrs() throws IOException {
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "netsh wlan show networks mode=Bssid");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String lineCommand;
String network ;
while (true) {
lineCommand = r.readLine();
if (lineCommand == null) {
break;
} else if (lineCommand.contains("SSID")&&!lineCommand.contains("BSSID")) {
String[] networks = lineCommand.split(":", 2);
network = networks[1];
if (!network.equals(" ")) {
String pureNetworkName = network.trim();
localNetworks.add(pureNetworkName);
} else {
return null;
}
}
}
return localNetworks;
}
private void display(ArrayList<String> networks) {
networks.forEach(network -> {
System.out.println(network);
});
}
private void searchSystemNetwork(ArrayList<String> networks) {
String REQUIRED_NETWORK = "PEER2PEER";
networks.forEach(network -> {
if (network.equals(REQUIRED_NETWORK)) {
System.out.println("Network is availabale");
} else {
}
});
}
void create()
{
// Netsh WLAN export profile key=clear folder="Folder_Path"
}
}
Выход:
бежать:
peer2peer
кондор PGN522
Ammar_A
Сеть доступна
СТРОИТЬ УСПЕШНО (общее время: 1 секунда)