Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中获取wifi网络接口名称_Java_Networking_Network Programming_Wifi - Fatal编程技术网

如何在java中获取wifi网络接口名称

如何在java中获取wifi网络接口名称,java,networking,network-programming,wifi,Java,Networking,Network Programming,Wifi,如何在java中确定wifi网络接口名称?您可以指定吗?是否要连接网络的SSID?或者网络适配器的名称?我提供了一个示例来获取所有网络接口的名称 Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { NetworkInterface networkInterf

如何在java中确定wifi网络接口名称?

您可以指定吗?是否要连接网络的SSID?或者网络适配器的名称?我提供了一个示例来获取所有网络接口的名称

Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements())
{
    NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
    System.out.println(networkInterface.getDisplayName());
}
枚举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());
    }
}
枚举networkInterfaces=NetworkInterface.getNetworkInterfaces(); while(networkInterfaces.hasMoreElements()) { NetworkInterface NetworkInterface=(NetworkInterface)networkInterfaces.nextElement(); if(networkInterface.getName().startsWith(“wlan”)){ System.out.println(networkInterface.getDisplayName()); } } 试试:


这将返回您机器上的所有接口。

如果您使用的是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;
    }
}

既然你说你是在安卓系统上开发的,那就用这个:

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" />


从该列表中,如何识别接口是否为wifi?您是否在android上开发?是的。但我希望从本机java API中找到接口类型。从该列表中,如何识别接口是否为wifi接口?我调整了答案,这是否有帮助?@dheeps您是否找到了解决方案。如何获取wifi接口的名称?