网络安卓

InetAddress

2019-09-27  本文已影响0人  介和

类InetAddress。

在java.net包下面。

InetAddress类的对象用于IP地址和域名,该类提供以下方法:

getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;

String getHostName():获取InetAddress对象的域名;

String getHostAddress():获取InetAddress对象的IP地址;

getLocalHost():获得一个InetAddress对象,该对象含有本地机的域名和IP地址。

private void test()

 {

        try {

    InetAddress locAdd = InetAddress.getLocalHost(); //得到本地InetAddress对象

            /* get www.baidu.com's ip */

  InetAddress remAdd = InetAddress.getByName("www.baidu.com"); //取得远程InetAddress对象

System.out.println("本机IP地址:" + locAdd.getHostAddress()); //得到本地IP地址

System.out.println("百度IP地址:" + remAdd.getHostAddress()); //得到百度IP地址

System.out.println("本机是否可达:" + locAdd.isReachable(10000)); //10000是超时时间,10s

            /*

                打印:

                本机IP地址:192.168.1.109

                百度IP地址:115.239.210.26

                本机是否可达:true

            */

        } catch (UnknownHostException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

很多情况是,某一域名对应的主机IP是可能有多个的,我们也可以一一的取回来。如下:

private void test2()

 {

        try {

            /* 百度可能有多个IP地址,解析回来,所以我们可以用一个数组装起来 */

            InetAddress[] addrs = InetAddress.getAllByName("www.baidu.com");

            if (addrs != null && addrs.length > 0) {

                for (InetAddress addr : addrs) {

                    System.out.println("--->" + addr.getHostAddress());

                }

            }

        } catch (UnknownHostException e) {

            e.printStackTrace();

        }

    }

————————————————

版权声明:本文为CSDN博主「姚镜堂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_16628781/article/details/54019950

上一篇下一篇

猜你喜欢

热点阅读