如果系统中开启了IPV6协议(比如window7),java网络编程经常会获取到IPv6的地址,这明显不是我们想要的结果,搜索发现很多蹩脚的做法是:禁止IPv6协议。其实查看官方文档有详细的说明:

java.net.preferIPv4Stack(default: false)

If IPv6 is available on the operating system the underlying native socket
will be an IPv6 socket. This allows Java™ applications to connect too, and
accept connections from, both IPv4 and IPv6 hosts.

If an application has a preference to only use IPv4 sockets then this
property can be set to true. The implication is that the application will not be
able to communicate with IPv6 hosts.

在实际的运用中有以下几种办法可以实现指定获取IPv4的地址:

1. 在java启动命令中增加一个属性配置:-Djava.net.preferIPv4Stack=true

1

java -Djava.net.preferIPv4Stack=``true``-``cp``.;classes/ michael.net.TestInetAddress

2

3

java -Djava.net.preferIPv6Addresses=``true``-``cp``.;classes/ michael.net.TestInetAddress

2.在java程序里设置系统属性值如下:

1

package``michael.net;

2

3

import``java.net.InetAddress;

4

5

/**

6

?``* @blog?[http://www.micmiu.com](http://www.micmiu.com/)

7

?``* @author Michael

8

?``*/

9

public``class``TestInetAddress {

10

11

????``/**

12

?????``* @param args

13

?????``*/

14

????``public``static``void``main(String[] args)?``throws``Exception {

15

????????``// 注释指定系统属性值

16

????????``// System.setProperty("java.net.preferIPv4Stack", "true");

17

????????``// System.setProperty("java.net.preferIPv6Addresses", "true");

18

????????``System.out.println(``"-------InetAddress.getLocalHost()"``);

19

????????``InetAddress addr = InetAddress.getLocalHost();

20

????????``System.out.println(``"HostName := "``+ addr.getHostName());

21

????????``System.out.println(``"HostAddress := "``+ addr.getHostAddress());

22

23

????????``System.out.println(``"-------InetAddress.getByName("micmiu.com")"``);

24

????????``InetAddress addr2 = InetAddress.getByName(``"micmiu.com"``);

25

????????``System.out.println(``"HostName := "``+ addr2.getHostName());

26

????????``System.out.println(``"HostAddress := "``+ addr2.getHostAddress());

27

28

????``}

29

}

java.net.preferIPv4Stack=true 运行结果如下:

——-InetAddress.getLocalHost()
HostName := Michael-PC
HostAddress :=10.7.246.163
——-InetAddress.getByName(“micmiu.com”)
HostName := micmiu.com
HostAddress :=173.254.28.17

java.net.preferIPv6Addresses=true 运行结果如下:

——-InetAddress.getLocalHost()
HostName := Michael-PC
HostAddress :=fe80:0:0:0:6518:85da:8690:16eb%13
——-InetAddress.getByName(“micmiu.com”)
HostName := micmiu.com
HostAddress :=173.254.28.17

3.tomcat Web容器

可在 catalina.bat 或者 catalina.sh 中增加如下环境变量即可:
SET CATALINA_OPTS=-Djava.net.preferIPv4Stack=true

解决java网络编程IPv6问题相关推荐

  1. 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等

    文章目录 网络编程概述 网络通信要素 要素一IP和端口号 要素二网络协议 TCP网络编程 UDP网络编程 URL网络编程 Java网络编程基础 网络编程概述 Java是Internet上的语言,它从语 ...

  2. Java 网络编程(超级详细)

    前言:本文是初学Java网络编程时所记录的学习笔记,方便以后查阅学习,同时也作为资料总结分享给大家,如果有问题欢迎指出!! 1. 网络编程 1.1 网络编程基本概念 1.网络 将不同区域的电脑连接到一 ...

  3. JavaSE学习笔记_20:Java网络编程

    Java网络编程     温馨提示1: (1)网络编程这一块会涉及到很多不同异常,得抛. (2)涉及到iO,还是按照iO的思想来解决问题. (3)接收端和发送端或者是服务端和客户端程序开启之后,两者的 ...

  4. Java网络编程笔记

    Java网络编程 14-1 网络编程概述 14-2 网络通信要素概述 14-3 通信要素一:IP和端口号 InetAddress类测试 14-4 通信要素二:网络协议 14-5 TCP网络编程 TCP ...

  5. JAVA网络编程知识学习

    JAVA网络编程知识学习 学习目标 第一章 网络编程入门 1.1软件结构 1.2 网络通信协议 1.3 协议分类 1.4 网络编程三要素 协议 IP地址 IP地址分类 常用命令 端口号 InetAdd ...

  6. 【Java基础】Java网络编程

    目录 一.Java网络编程基础知识 1.网络分类 2.网络编程模型 3.网络协议 4.套接字和端口 二.Java TCP通信:Java ServerSocket类和Socket类 1.ServerSo ...

  7. Java网络编程(一)网络编程入门知识

    文章目录 第一章 Java网络编程入门 1.前言 1.1 进程之间的通信 1.2 计算机网络概念 1.3 网络模型之OSI参考模型 1.4 TCP/IP参考模型和TCP/IP协议 1.4.1 模型解析 ...

  8. JAVA 网络编程技术学习笔记

    目录 一.网络编程基本概念(了解) 1.1 计算机网络 1.2 网络通信协议 1.2.1什么是网络通信协议 1.2.2 OSI七层协议模型 1.2.3网络协议的分层 1.3数据的封装和解封 1.4 I ...

  9. java网络编程 听_java网络编程 - 亲亲媛的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.TCP/UDP,Socket,Http,Ftp简介 1.TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议(支持网间互联的数据报协议 ...

最新文章

  1. 2020-11-11 C++函数后面加“:”的含义
  2. 收藏|490页阿里、腾讯、京东等公司的推荐算法最佳实践!pdf限时下载
  3. 将FeatClass属性表高效率转换成DataTable
  4. python太慢了-python 读取大文件越来越慢
  5. css设置一个div显示在另一个div的上层_CSS工程中常见问题-1
  6. mysql显示RMB符号乱码_mysql显示乱码
  7. SQL Server链接服务器 Linked Server
  8. 无比乐java游戏_传智播客Java JavaEE+物联网云计算 就业班
  9. 教师排课程序设计c语言,计算中心
  10. react 版权问题_react兼容ie
  11. Visio直角连接线增加直角拐弯
  12. React中useEffect与生命周期钩子函数的对应关系
  13. cd linux 镜像,cdlinux镜像 v0.9.7官方版
  14. linux查询对外2827端口运行文件,lsof介绍
  15. 使用tar分别压缩文件夹为文件
  16. [oracle]通过DBLINK远程查询带DBLINK的视图
  17. html窗口最小宽度和高度,html设置尺寸大小的方法
  18. [激光原理与应用-23]:《激光原理与技术》-9- 激光产生技术-锁模技术
  19. 车载以太网100base-T1
  20. 企业员工信息管理系统源码+ppt+论文+中期检查表+sql

热门文章

  1. 知识图谱综述及技术地图概览(智能问答系统)
  2. 视觉slam十四讲 学习笔记-3(李群和李代数)
  3. 【蓝桥杯】 《3W字数总结》 蓝桥杯Java必备基础知识以及国赛真题解析
  4. Suker的进球庆祝动作
  5. 用python实现颜值打分,还能测测自己的颜值
  6. gitlab快速入门
  7. unity 摄像头跟着鼠标移动_unity第三视角移动,摄像机跟随
  8. 软件定义网络(SDN)基础概念学习笔记(上)
  9. 嵌入式计算机示例及应用
  10. 分数阶微分方程c语言,第一讲分数阶微分方程.PDF