Как получить имя сетевого интерфейса Wi-Fi в Java - PullRequest
5 голосов
/ 22 декабря 2010

Как определить имя сетевого интерфейса Wi-Fi в Java?

Ответы [ 4 ]

3 голосов
/ 18 сентября 2013

Поскольку вы сказали, что разрабатываете на Android, используйте это:

WifiManager wifiManager = (WifiManager) this.getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
System.out.println(wifiInfo.getSSID());

Это вернет имя вашего WIFI.

Вы должны добавить это разрешение в свой манифест.

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
1 голос
/ 22 декабря 2010

Можете ли вы указать? Хотите SSID подключенной сети? Или название сетевых адаптеров? Я привел пример, чтобы получить имя всех сетевых интерфейсов.

Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements())
{
    NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
    System.out.println(networkInterface.getDisplayName());
}

Если вы хотите выбрать только интерфейс WLAN, возможно, вам придется сделать это через JNI, в противном случае вы можете проверить имя на наличие вхождений «wlan» (например, eth0, eth1 и т. Д.). Я не рекомендую полагаться только на это соглашение об именах.

Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements())
{
    NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
    if(networkInterface.getName().startsWith("wlan")) {
        System.out.println(networkInterface.getDisplayName());
    }
}
0 голосов
/ 23 ноября 2012

Если вы предпочитаете интерфейс Wi-Fi и только интерфейс Wi-Fi, то для Android необходимо выполнить синтаксический анализ / proc / net / wireless:

public static String getInterfaceName() {
    try
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("/proc/net/wireless")));

        // skip header
        reader.readLine();
        reader.readLine();

        // read first interesting line
        String ifLine = reader.readLine();
        reader.close();

        // extract interface name
        String ifName = ifLine.substring(0, ifLine.indexOf(':'));

        return ifName.trim();
    }
    catch(Exception e) {
        e.printStackTrace();
        return null;
    }
}
0 голосов
/ 22 декабря 2010

Попробуйте:

NetworkInterface.getNetworkInterfaces ();

, который вернет все интерфейсы, имеющиеся на вашем компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...