zoukankan      html  css  js  c++  java
  • InetAddress相关笔记

    InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。其生成InetAddress对象的方法(getLocalHost()getByName()getAllByName()getByAddress()等)

     

     1 import java.net.UnknownHostException;
     2 
     3 /*
     4  * To change this license header, choose License Headers in Project Properties.
     5  * To change this template file, choose Tools | Templates
     6  * and open the template in the editor.
     7  */
     8 import java.net.*;
     9 import java.util.*;
    10 /**
    11  *
    12  * @author silianbo
    13  */
    14 public class InetAddressDemo  {
    15     public static void main(String[] args) throws UnknownHostException{
    16         //此处添加相关的代码段
    17         
    18     }
    19     
    20 }

     

    获得本地主机信息

    1 InetAddress localAddress = InetAddress.getLocalHost();
    2         System.out.println(localAddress);    
    View Code

     

    指定域名主机的信息

    String host = "www.google.com";
    		InetAddress address = InetAddress.getByName(host);
    		System.out.println(address);	
    

    根据指定域名获得所有信息

    String host = "www.baidu.com";     //注意获得的所有IP地址
    		InetAddress [] addresses = InetAddress.getAllByName(host);
    		for(InetAddress address : addresses)
    			System.out.println(address);
    

    比较根据localhost和计算机名获得信息的不同

    String host = "localhost";    //更改localhost为你现在所使用计算机名,查看不同
    	    InetAddress ia = InetAddress.getByName (host);
    		System.out.println ("Canonical Host Name = " + ia.getCanonicalHostName ());
    		System.out.println ("Host Address = " + ia.getHostAddress ());
    		System.out.println ("Host Name = " + ia.getHostName ());
    		System.out.println ("Is Loopback Address = " + ia.isLoopbackAddress ());
    

    获得本地主机所有IP地址

    Enumeration<NetworkInterface> netInterfaces = null;  
     		try {  
         		netInterfaces = NetworkInterface.getNetworkInterfaces();  
         		while (netInterfaces.hasMoreElements()) {  
             		NetworkInterface ni = netInterfaces.nextElement();  
             		System.out.println("DisplayName:" + ni.getDisplayName());  
             		System.out.println("Name:" + ni.getName());  
             		Enumeration<InetAddress> ips = ni.getInetAddresses();  
             		while (ips.hasMoreElements()) {  
                 		System.out.println("IP:" + ips.nextElement().getHostAddress());  
             		}  
         		}  
     		} catch (Exception e) {  
         		e.printStackTrace();  
     		}	
    

     

      

    run:
    DisplayName:Software Loopback Interface 1
    Name:lo
    IP:127.0.0.1
    IP:0:0:0:0:0:0:0:1
    DisplayName:Microsoft 内核调试网络适配器
    Name:eth0
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter
    Name:wlan0
    IP:fe80:0:0:0:21c7:474b:810b:997d%wlan0
    DisplayName:Realtek PCIe GBE 系列控制器
    Name:eth1
    IP:10.128.195.6
    IP:fe80:0:0:0:21f7:f5fa:71a7:e3d1%eth1
    DisplayName:Bluetooth 设备(个人区域网)
    Name:eth2
    IP:fe80:0:0:0:5d4a:7ad0:3b6f:29af%eth2
    DisplayName:Bluetooth 设备(RFCOMM 协议 TDI)
    Name:net0
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器
    Name:wlan1
    DisplayName:Microsoft ISATAP Adapter
    Name:net1
    IP:fe80:0:0:0:0:5efe:a80:c306%net1
    DisplayName:Teredo Tunneling Pseudo-Interface
    Name:net2
    IP:2001:0:9d38:90d7:149e:221a:8adf:279a
    IP:fe80:0:0:0:149e:221a:8adf:279a%net2
    DisplayName:WAN 微型端口(SSTP)
    Name:net3
    DisplayName:WAN 微型端口(L2TP)
    Name:net4
    DisplayName:WAN 微型端口(PPPOE)
    Name:ppp0
    DisplayName:WAN 微型端口(PPTP)
    Name:net5
    DisplayName:WAN Miniport (IKEv2)
    Name:net6
    DisplayName:WAN 微型端口(IP)
    Name:eth3
    DisplayName:WAN 微型端口(IPv6)
    Name:eth4
    DisplayName:WAN 微型端口(网络监视器)
    Name:eth5
    DisplayName:RAS 同步适配器
    Name:ppp1
    DisplayName:Microsoft ISATAP Adapter #2
    Name:net7
    IP:fe80:0:0:0:0:5efe:c0a8:3401%net7
    DisplayName:Microsoft ISATAP Adapter #3
    Name:net8
    IP:fe80:0:0:0:0:5efe:c0a8:c701%net8
    DisplayName:Microsoft 托管网络虚拟适配器
    Name:wlan2
    IP:fe80:0:0:0:6c29:b7c6:d687:691c%wlan2
    DisplayName:VMware Virtual Ethernet Adapter for VMnet1
    Name:eth6
    IP:192.168.52.1
    IP:fe80:0:0:0:20d1:2461:f68:f35%eth6
    DisplayName:VMware Virtual Ethernet Adapter for VMnet8
    Name:eth7
    IP:192.168.199.1
    IP:fe80:0:0:0:1859:4837:4f9e:32dd%eth7
    DisplayName:Microsoft ISATAP Adapter #4
    Name:net9
    IP:fe80:0:0:0:0:5efe:a0b:b6ed%net9
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #2
    Name:wlan3
    DisplayName:Microsoft ISATAP Adapter #5
    Name:net10
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #3
    Name:wlan4
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4
    Name:wlan5
    IP:fe80:0:0:0:95a5:ed42:ab58:12c4%wlan5
    DisplayName:Realtek PCIe GBE 系列控制器-WFP Native MAC Layer LightWeight Filter-0000
    Name:eth8
    DisplayName:Realtek PCIe GBE 系列控制器-Liebao Wifi NAT Driver-0000
    Name:eth9
    DisplayName:Realtek PCIe GBE 系列控制器-PPPoe Performance Enhancer-0000
    Name:eth10
    DisplayName:Realtek PCIe GBE 系列控制器-QoS Packet Scheduler-0000
    Name:eth11
    DisplayName:Realtek PCIe GBE 系列控制器-WFP 802.3 MAC Layer LightWeight Filter-0000
    Name:eth12
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-WFP Native MAC Layer LightWeight Filter-0000
    Name:wlan6
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-Virtual WiFi Filter Driver-0000
    Name:wlan7
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-Native WiFi Filter Driver-0000
    Name:wlan8
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-Liebao Wifi NAT Driver-0000
    Name:wlan9
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-PPPoe Performance Enhancer-0000
    Name:wlan10
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-QoS Packet Scheduler-0000
    Name:wlan11
    DisplayName:Qualcomm Atheros AR9485WB-EG Wireless Network Adapter-WFP 802.3 MAC Layer LightWeight Filter-0000
    Name:wlan12
    DisplayName:Microsoft 托管网络虚拟适配器-WFP Native MAC Layer LightWeight Filter-0000
    Name:wlan13
    DisplayName:Microsoft 托管网络虚拟适配器-Native WiFi Filter Driver-0000
    Name:wlan14
    DisplayName:Microsoft 托管网络虚拟适配器-Liebao Wifi NAT Driver-0000
    Name:wlan15
    DisplayName:Microsoft 托管网络虚拟适配器-PPPoe Performance Enhancer-0000
    Name:wlan16
    DisplayName:Microsoft 托管网络虚拟适配器-QoS Packet Scheduler-0000
    Name:wlan17
    DisplayName:Microsoft 托管网络虚拟适配器-WFP 802.3 MAC Layer LightWeight Filter-0000
    Name:wlan18
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-WFP Native MAC Layer LightWeight Filter-0000
    Name:wlan19
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-Native WiFi Filter Driver-0000
    Name:wlan20
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-Liebao Wifi NAT Driver-0000
    Name:wlan21
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-PPPoe Performance Enhancer-0000
    Name:wlan22
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-QoS Packet Scheduler-0000
    Name:wlan23
    DisplayName:Microsoft Wi-Fi Direct 虚拟适配器 #4-WFP 802.3 MAC Layer LightWeight Filter-0000
    Name:wlan24
    DisplayName:WAN 微型端口(IP)-WFP Native MAC Layer LightWeight Filter-0000
    Name:eth13
    DisplayName:WAN 微型端口(IP)-Liebao Wifi NAT Driver-0000
    Name:eth14
    DisplayName:WAN 微型端口(IP)-PPPoe Performance Enhancer-0000
    Name:eth15
    DisplayName:WAN 微型端口(IP)-QoS Packet Scheduler-0000
    Name:eth16
    DisplayName:WAN 微型端口(IPv6)-WFP Native MAC Layer LightWeight Filter-0000
    Name:eth17
    DisplayName:WAN 微型端口(IPv6)-Liebao Wifi NAT Driver-0000
    Name:eth18
    DisplayName:WAN 微型端口(IPv6)-PPPoe Performance Enhancer-0000
    Name:eth19
    DisplayName:WAN 微型端口(网络监视器)-WFP Native MAC Layer LightWeight Filter-0000
    Name:eth20
    DisplayName:WAN 微型端口(IPv6)-QoS Packet Scheduler-0000
    Name:eth21
    DisplayName:WAN 微型端口(网络监视器)-Liebao Wifi NAT Driver-0000
    Name:eth22
    DisplayName:WAN 微型端口(网络监视器)-PPPoe Performance Enhancer-0000
    Name:eth23
    DisplayName:WAN 微型端口(网络监视器)-QoS Packet Scheduler-0000
    Name:eth24
    DisplayName:ChinaNetSNWide
    Name:ppp2
    IP:10.11.182.237
    BUILD SUCCESSFUL (total time: 1 second)
    

      

    根据IP地址构造InetAddress

    byte [] ip = new byte[] { (byte) 202, (byte) 117, (byte)128 , 7};  //可以更改数值超过255
    		InetAddress address1 = InetAddress.getByAddress(ip);
    		InetAddress address2 = InetAddress.getByAddress("www.baidu.com", ip);
    		System.out.println(address1);
    		System.out.println(address2);
    

    利用InetAddress.getByName()按计算机名称获局域网中所有开机主机名称和IP

      for (int i = 0; i <= 100; i++) {
                int s = i + 1;
                String host = "192.168.52." + s;
                try {
                    InetAddress a = InetAddress.getByName(host);
                    System.out.println("The IP is:" + a.getHostAddress());
                    System.out.println("The localhost  is:" + a.getHostName());
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
            }
    

      

    利用InetAddress.getByName()IP地址获得指定网络段所有开机主机名称/域名和IP地址,结合方法isReachable()

    for (int i = 0; i <= 155; i++) {
                int s = i + 100;
                String host = "192.168.52." + s;
                try {
                    InetAddress a = InetAddress.getByName(host);
                    System.out.println("The IP is:" + a.getHostAddress());
    
                    System.out.println("The localhost  is:" + a.getHostName());
                    a.isReachable(3000);
                } catch (UnknownHostException e) {
                }
    
            }
    

    InetAddress()  相关的操作就这么多!

     

  • 相关阅读:
    我的2007, 兼谈些对技术的看法
    回帖整理: 关于"学习Java社区"更清晰的思路
    回帖整理: 创业心态
    我的世界观 by 爱因斯坦
    回帖整理: 论团队中的设计工作
    请大家帮我一个忙
    回帖整理: Java社区有什么可学的?
    SSL原理及应用(1)SSL协议体系结构
    文件和目录的访问控制(4) 审核规则
    强名称(2)引用强名称签名的程序集
  • 原文地址:https://www.cnblogs.com/silianbo/p/4634247.html
Copyright © 2011-2022 走看看