Как определить имя сетевого интерфейса Wi-Fi в java?
Как получить имя интерфейса сети Wi-Fi в java
Ответ 1
Поскольку вы сказали, что работаете на 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" />
Ответ 2
Можете ли вы указать? Вы хотите 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());
}
}
Ответ 3
Try:
NetworkInterface.getNetworkInterfaces();
который вернет все интерфейсы, присутствующие на вашем компьютере.
Ответ 4
Если вы используете интерфейс Wi-Fi и только интерфейс Wi-Fi, тогда синтаксический анализ /proc/net/wireless - это способ выхода на 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;
}
}