Как получить 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 секунда)

Другие вопросы по тегам