Java网络编程从入门到精通(7):用getHostAddress方法获得IP地址

本文涉及的产品
.cn 域名,1个 12个月
简介: 本文为原创,如需转载,请注明作者和出处,谢谢!上一篇: Java网络编程从入门到精通(6):使用getCanonicalHostName方法获得主机名    这个方法用来得到主机的IP地址,这个IP地址可能是IPv4的地址,也可能是IPv6的地址。

本文为原创,如需转载,请注明作者和出处,谢谢!

上一篇: Java网络编程从入门到精通(6):使用getCanonicalHostName方法获得主机名

  
这个方法用来得到主机的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得到IPv4IPv6地址,以及如何得到本机的所有IP地址(包括IPv4IPv6地址)。

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.10192.10.10.10是和本机网卡绑定的两个IP,而192.168.83.1192.168.189.1VMware虚拟机软件在本机安装的两个虚拟网卡的地址。最后一个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后,必须重新启动计算机才能生效。

下一篇: Java网络编程从入门到精通(8):用getAddress方法获得IP地址

国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

目录
相关文章
|
10天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
39 11
|
3天前
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
31 8
|
24天前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
67 3
图卷积网络入门:数学基础与架构设计
|
14天前
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
64 2
|
21天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
54 3
|
26天前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
40 6
|
28天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
1月前
|
数据采集 Java API
java怎么设置代理ip:简单步骤,实现高效网络请求
本文介绍了在Java中设置代理IP的方法,包括使用系统属性设置HTTP和HTTPS代理、在URL连接中设置代理、设置身份验证代理,以及使用第三方库如Apache HttpClient进行更复杂的代理配置。这些方法有助于提高网络请求的安全性和灵活性。
|
5月前
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解

热门文章

最新文章