paquete java.net
Todos deben saber que los objetos relacionados con la red están en el paquete java.net, y las clases debajo del paquete Java Net son los siguientes:
1. Obtenga el objeto host inetaddress
// Obtenga el objeto de host local inetaddress host = inetaddress.getLocalHost (); // Obtener el objeto host basado en la dirección IP o el nombre de host. Al obtener el host con el nombre del host, se requiere la resolución DNS. Inetaddress host = inetaddress.getByName ("192.168.100.124"); Inetaddress host = inetaddress.getByName (www.baidu.com);2. Obtenga la dirección IP y el nombre de host del objeto host (se requiere DNS para resolver el nombre del host)
host.gethostaddress (); host.gethostName ();
3. Obtenga todas las interfaces de la máquina y lo atraviese
// El tipo de datos de retorno es EnumerationEnumeration <NetworkInterface> enu = networkInterface.getNetworkInterfaces (); while (enu.hasmoreelements) {networkInterface inet = enu.nextelement (); String intname = inet.getName ();}Dado que puede haber múltiples subinterfaces en una interfaz (que admite IP, como Eth0: 1), de acuerdo con una determinada interfaz, puede obtener el conjunto de enumeración de todas las direcciones IP de la interfaz (incluidas las interfaces IPv4 e IPv6).
Enumeración <inetaddress> net_list = inet.getInetAddresses (); while (net_list.hasmoreelements) {inetAddress net = net_list.nextelement (); Cadena ip = net.gethostaddress ();}Puede usar el método Collections.List () para convertir el tipo de enumeración en la estructura de datos de la recopilación ArrayList y luego usar el Traverser de Itreator para atravesar.
Aquí hay una forma de obtener todos los nombres de interfaz del nativo y la dirección IPv4 en estas interfaces (para Windows y Linux).
import java.net.*; import java.util.*; public class enumdemo {public static void main (string [] args) {try {// obtenga todas las interfaces y póngalas en la colección de enumeración y luego use colección.list () para la enumeración en una enumeración de la colección ArrayList Enumeration <Networkinterface> enu = network Interface ArrayList <NetworkInterface> arr = Collections.list (Enu); for (iterator <NetworkInterface> it = arr.iterator (); it.hasnext ();) {networkInterface ni = it.next (); String intname = ni.getName (); // Obtenga el nombre de la interfaz // Obtenga todas las colecciones de interfaz de red IP en cada interfaz, porque puede haber una subterfaz ArrayList <InetAddress> inets = collections.list (ni.getInetAddresses ()); para (iterator <inetaddress> it1 = inets.iterator (); it1.hasnext ();) {inetaddress inet = it1.next (); // Filtro solo las direcciones IPv4, de lo contrario, la dirección IPv6 se obtendrá al mismo tiempo si (inet instanceOf inet4address) {string ip = inet.gethostaddress (); System.out.printf (" %-10s %-5s %-6s %-15s/n", "inetfaceName:", intname, "| ipv4:", ip); }}}}} Catch (SocketException S) {S.PrintStackTrace (); }}}Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.