gpt4 book ai didi

java - 我如何知道应用程序是使用java链接到wifi还是以太网?

转载 作者:行者123 更新时间:2023-12-02 09:58:31 25 4
gpt4 key购买 nike

我想在 Mac 和 Windows 上检测网络是 WiFi 还是以太网。

NetworkInterface.getNetworkInterfaces()

这段代码可以获取网络接口(interface)的名称,但我不知道网络是wifi还是以太网。请帮助我......

最佳答案

(如果我理解您的问题)您可以尝试查看不同网络接口(interface)本地地址之类的操作。如果 wlan 具有私有(private) IP 地址,您可以假设它使用无线技术连接到网络。如果 eth 具有私有(private) IP 地址,您可以假设它通过以太网连接到网络。我不知道这是否100%有效。这不是我的领域。

import java.net.*;
import java.util.*;

public class Main {

public static void main(String args[]) throws SocketException {

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets))
displayInterfaceInformation(netint);
}

static void displayInterfaceInformation(NetworkInterface netint) {
try {
NetworkInterface nif = netint;
if(nif==null){
System.err.println("Error getting the Network Interface");
return;
}

Enumeration<InetAddress> nifAddresses = nif.getInetAddresses();
InetSocketAddress inetAddr= new InetSocketAddress(nifAddresses.nextElement(),0);

System.out.println("Interface: " + nif.getName());
DatagramSocket socket = new DatagramSocket(inetAddr);
System.out.println(socket.getLocalAddress());
System.out.println("");
} catch (SocketException ex) {
System.out.println(ex.toString());
}
catch(NoSuchElementException ex)
{
//System.out.println(ex.toString());
}
}
}

输出

Interface: lo
/127.0.0.1

Interface: eth4 //Number changed!
/131.555.555.55

查看此输出,我假设 eth4 有网络连接。

关于java - 我如何知道应用程序是使用java链接到wifi还是以太网?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55805212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com