pacote java.net
Todos devem saber que os objetos relacionados à rede estão no pacote java.net, e as classes do pacote de rede Java são as seguintes:
1. Obtenha o objeto host inetaddress
// Obtenha o objeto host local inetaddress host = inetaddress.getLocAlHost (); // Obtenha o objeto host com base no endereço IP ou no nome do host. Ao obter o host com o nome do host, a resolução DNS é necessária. Inetaddress host = inetaddress.getbyName ("192.168.100.124"); Host inetaddress = inetaddress.getbyname (www.baidu.com);2. Obtenha o endereço IP e o nome do host do objeto host (DNS é necessário para resolver o nome do host)
host.gethostaddress (); host.gethostName ();
3. Obtenha todas as interfaces da máquina e atravesse
// O tipo de dados de retorno é enumeraçãoNumeration <NetworkInterface> ENU = NetworkInterface.getNetworkInterfaces (); while (ENU.HasMoreElements) {NetworkInterface INET = ENU.NEXTELEMENT (); String intname = inet.getName ();}Como pode haver vários sub-interfaces em uma interface (suportando IP, como ETH0: 1), de acordo com uma determinada interface, você pode obter o conjunto de enumeração de todos os endereços IP da interface (incluindo interfaces IPv4 e IPv6).
Enumeração <iNetAddress> net_list = inet.getinetaddresses (); while (net_list.hasmoreElements) {inetaddress net = net_list.nextElement (); String ip = net.gethostaddress ();}Você pode usar o método Coleções.List () para converter o tipo de enumeração na estrutura de dados da coleção ArrayList e depois usar o Traverser do Itreator para atravessar.
Aqui está uma maneira de obter todos os nomes de interface do endereço nativo e IPv4 nessas interfaces (para Windows e Linux).
importar java.net. ArrayList <NetworkInterface> arr = collection.list (ENU); for (iterator <networkInterface> it = arr.iterator (); it.hasnext ();) {networkInterface ni = it.next (); String intname = ni.getName (); // Obtenha o nome da interface // obtenha todas as coleções de interface de rede IP em cada interface, porque pode haver sub-interface ArrayList <nonetAddress> inets = collection.list (ni.getineTAddresses ()); for (iterator <inetaddress> it1 = inets.iterator (); it1.hasnext ();) {inetAddress inet = it1.next (); // Filter apenas endereços IPv4, caso contrário, o endereço IPv6 será obtido ao mesmo tempo se (INET Instância do INET4Address) {String ip = inet.gethostAddress (); System.out.printf (" %-10s %-5s %-6s %-15s/n", "Inetfacename:", intname "| ipv4:", ip); }}}}} catch (SockeTexception s) {s.printStackTrace (); }}}Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.