How to get the wifi network interface name in java

廉价感情. 提交于 2019-12-01 18:02:21

问题


How to determine wifi network interface name in java?


回答1:


Since you said that you are developing on Android use this:

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

This will return the name of your WIFI.

You have to add this permission to your manifest.

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



回答2:


Can you specify? Do you want the SSID of the connected network? Or the name of the network adapters? I provided an example to get the name of all network interfaces.

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

If you only want to select the WLAN Interface, maybe you have to do this via JNI, otherwise you could check the name for occurrences of "wlan" (like eth0, eth1 and so on). I don't recommend to rely only on this naming convention.

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



回答3:


Try:

NetworkInterface.getNetworkInterfaces();

which will return all the interfaces present on your machine.




回答4:


If you're after the Wi-Fi interface and only the Wi-Fi interface, then parsing /proc/net/wireless is the way to go on Android:

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;
    }
}


来源:https://stackoverflow.com/questions/4507628/how-to-get-the-wifi-network-interface-name-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!