Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 408|回复: 0

[网络编程学习]Java网络编程从入门到精通(7):获取IP地址

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-6 00:04:20 | 显示全部楼层 |阅读模式

        这个方法用来得到主机的IP
        地址,这个IP
        地址可能是IPv4
        的地址,也可能是IPv6
        的地址。getHostAddress
        方法的定义如下:
      
         
          
         public
          String getHostAddress()
         
         
       
         无论InetAddress
         对象是使用哪种方式创建的,getHostAddress
         方法都不会访问DNS
         服务器。如果想访问使用IPv6
         地址的远程主机,需要在操作系统上安装IPv6
         协议。下面是Windows 2003
         上安装IPv6
         协议的步骤:


         
       
         
    第一步:

         打开“
         本地连接”
         属性对话框。如图1所示
         。
      
         
          
          

          

          
          
         
          图1 “本地连接”属性对话框
          

          
          
         
          
      
          第二步:
          点击“
          安装”
          按钮,出现“
          选择网络组件类型”
          对话框,选择“
          协议”
          选项后,点击“
          添加”
          按钮,出现如图2
          的“
          选择网络协议”
          对话框,选择“Microsoft TCP/IP
          版本6”
          ,最后点击“
          确定”
          按钮。
      
          
          
          

          

          
          
          
           图2  “选择网络协议”对话框
          

          
          
          
           除了使用图形化界面来安装IPv6
           外,还可以使用如下命令行来安装IPv6
           :

          
          
            
                  netsh interface ipv6 install
          
          
           下面的代码
           演示了如何利用getHostAddress
           得到IPv4
           和IPv6
           地址,以及如何得到本机的所有IP
           地址(包括IPv4
           和IPv6
           地址)。
          

          

          
          
            
                  package
            mynet;


           import
            java.net.
           *
           ;


           public
            
           class
            MyIP
    {
         
           public
            
           static
            
           void
            main(String[] args)
           throws
            Exception
         {
             
           //
            输出IPv4地址
          

                   InetAddress ipv4Address1
           =
            InetAddress.getByName(
           "
           1.2.3.4
           "
           );
             System.out.println(
           "
           ipv4Address1:
           "
            
           +
            ipv4Address1.getHostAddress());
             InetAddress ipv4Address2
           =
            InetAddress.getByName(
           "
           www.ibm.com
           "
           );
             System.out.println(
           "
           ipv4Address2:
           "
            
           +
            ipv4Address2.getHostAddress());
             InetAddress ipv4Address3
           =
            InetAddress.getByName(
           "
           myuniverse
           "
           );
             System.out.println(
           "
           ipv4Address3:
           "
            
           +
            ipv4Address3.getHostAddress());
             
           //
            输出IPv6地址
          

                   InetAddress ipv6Address1
           =
            InetAddress.getByName(
           "
           abcd:123::22ff
           "
           );
             System.out.println(
           "
           ipv6Address1:
           "
            
           +
            ipv6Address1.getHostAddress());
             InetAddress ipv6Address2
           =
            InetAddress.getByName(
           "
           www.neu6.edu.cn
           "
           );
             System.out.println(
           "
           ipv6Address2:
           "
            
           +
            ipv6Address2.getHostAddress());
             
           //
            输出本机全部的IP地址
          

                   InetAddress Addresses[]
           =
            InetAddress.getAllByName(
           "
           myuniverse
           "
           );
             
           for
            (InetAddress address : Addresses)
                 System.out.println(
           "
           本机地址:
           "
            
           +
            address.getHostAddress());
         }
    }

          
          
          
           在上面代码
           中
           使用了www.neu6.edu.cn
           作为域名,这个域名是东北大学用于测试IPv6
           地址的域名。下面是其他一些可用于测试IPv6
           的域名,读者可以使用ping
           命令或例程3-9
           来测试这些域名。

          
          
            
                 www6.whu.edu.cn (武汉大学)
    www.jlu6.edu.cn(吉林大学)
    www6.usst.edu.cn(上海理工大学)
    www.fudan6.edu.cn(复旦大学)

          
          
           在访问这些域名之前,本机必须使用上述的方法或命令行安装IPv6
           ,否则getByName
           方法将抛出UnknownHostException
           异常。

          
          
                   
           运行结果:
          
          
            
                  ipv4Address1:
           1.2.3.4
          
    ipv4Address2:
           129.42.60.212
          
    ipv4Address3:
           192.168.18.10
          
    ipv6Address1: abcd:
           123
           :
           0
           :
           0
           :
           0
           :
           0
           :
           0
           :22ff
    ipv6Address2:
           2001
           :da8:
           9000
           :b255:
           200
           :e8ff:feb0:5c5e
    本机地址:
           192.168.18.10
          
    本机地址:
           192.168.83.1
          
    本机地址:
           192.168.189.1
          
    本机地址:
           193.10.10.10
          
    本机地址:
           0
           :
           0
           :
           0
           :
           0
           :
           0
           :
           0
           :
           0
           :
           1
          

          
          
          
           在上面的运行结果中的IP
           地址192.168.18.10
           和192.10.10.10
           是和本机网卡绑定的两个IP
           ,而192.168.83.1
           和192.168.189.1
           是VMware
           虚拟机软件在本机安装的两个虚拟网卡的地址。最后一个IPv6
           地址0:0:0:0:0:0:0:1
           是代表本机的IPv6
           网址,相当于IPv4
           地址的127.0.0.1
           。读者可以使用如下命令行添加IPv6
           地址和删除IPv6
           :

          
          
           添加IPv6
           地址
          
          
            
                   netsh interface ipv6 add address
           "
           本地连接
           "
            aa:bb::cc
          
          
          
           删除IPv6
          
          
            
                  netsh interface ipv6 uninstall
          
          
           注意:安装IPv6不需要重新启动计算机,但添加IPv6地址或删除IPv6后,必须重新启动计算机才能生效。
          
          
          
          
          
          

          
          
          

          
          
         
        本文出自 “软件改变整个宇宙” 博客,请务必保留此出处http://androidguy.blog.51cto.com/974126/214761
       
    复制代码

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/11/6/000420312.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 10:18 , Processed in 0.306294 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表