java.net пакет
Каждый должен знать, что объекты, связанные с сетью, находятся в пакете java.net, а классы в пакете Java Net заключаются в следующем:
1. Получите объект хоста inetAdress
// Получить локальный объект хоста inetAddress host = inetaddress.getlocalhost (); // Получить объект хоста на основе IP -адреса или имени хоста. При получении хоста с именем хоста требуется разрешение DNS. InetAddress host = inetAddress.getByName ("192.168.100.124"); InetAddress host = inetAddress.getbyName (www.baidu.com);2. Получите IP -адрес и имя хоста объекта хоста (DNS требуется для разрешения имени хоста)
host.gethostaddress (); host.gethostname ();
3. Получите все интерфейсы машины и пройдите ее
// Возвращение типа данных - enumerationEnumeration <networkInterface> enu = networkInterface.getNetworkInterfaces (); while (enu.hasmoreElements) {networkInterface inet = enu.nextelement (); String intname = inet.getName ();}Поскольку на интерфейсе может быть несколько подметочных (поддержка IP, например, ETH0: 1), в соответствии с определенным интерфейсом, вы можете получить набор перечисления всех IP-адресов интерфейса (включая интерфейсы как IPv4, так и IPv6).
Enumeration <inetAddress> net_list = inet.getinetAddresses (); while (net_list.hasmoreelements) {inetaddress net = net_list.nextelement (); String ip = net.gethostaddress ();}Вы можете использовать метод collections.list () для преобразования типа перечисления в структуру данных коллекции ArrayList, а затем использовать Traverser ItReator для прохождения.
Вот способ получить все имена интерфейса нативного и адрес IPv4 на этих интерфейсах (для Windows и Linux).
Импорт java.net.*; импортировать java.util.*; public class enumdemo {public static void main (string [] args) {try {// Получить все интерфейсы и поместить их в коллекцию перечисления, а затем использовать collections.list () для преобразования коллекции перечисления в коллекцию ArrayList enuumeration <networkInterface> networkInterface. Arraylist <networkinterface> arr = collections.list (enu); for (iterator <networkInterface> it = arr.iterator (); it.hasnext ();) {networkinterface ni = it.next (); String intname = ni.getName (); // Получить имя интерфейса // Получить все коллекции интерфейсов сети IP в каждом интерфейсе, потому что может быть суб-интерфейс ArrayList <InetAddress> inets = collections.list (ni.getinetAddresses ()); for (iterator <inetAddress> it1 = inets.iterator (); it1.hasnext ();) {inetAddress inet = it1.next (); // Фильтруя только адреса IPv4, в противном случае адрес IPv6 будет получен одновременно, если (inet ancessionof inet4address) {string ip = inet.gethostaddress (); System.out.printf (« %-10s %-5s %-6s %-15s/n», «inetfacename:«, Intname, "| ipv4:", ip); }}}}} catch (socketException s) {s.printstacktrace (); }}}Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.