为啥获取了ipv6地址却无法访问纯ipv6网站
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥获取了ipv6地址却无法访问纯ipv6网站相关的知识,希望对你有一定的参考价值。
路由器刷了老毛子固件成功获取ipv6公网ip。且下级设备全具有ipv6公网ip,直接ping ipv6地址能ping通但是一旦ping ipv6的域名就不行了,而且都无法访问纯ipv6网站。
你直接Ping是Ping的内网,WAN口获取到的地址才是外网地址,你打开一个网页用网页内的Ping工具Ping你的WAN口地址(就是说用外网Ping你的地址),如果Ping的通,这个地址就是正确的,如果Ping你的电脑主机Ping不通,虽然你的电脑主机是外网前缀的IP,但是也属于内网,你必须做DMZ映射,或者不要用路由器,直接用主机拨号PPPOE选择IPv6认证接入。IPv6访问纯IP地址必须在地址上面加上中括号,比如这个https://[2001:4860:4860::8888]:8443/abc.html 。注意端口号。 参考技术A 你有地址证明ISP设置了
IPV6
,但是你能不能出的去要看ISP是否设置了相关的访问资源。目前阶段多数ISP都上了IPV6,但是不一定能访问资源,还在测试和调试阶段,一般给用户获取到的V6不一定都能访问公网。
获取IP地址
IP(Internet Protocol 网络之间的互联协议)。IP地址是电脑/服务器的身份证,具有唯一性。
IPv4有4段,由“.”分隔,每个范围0-255,如192.168.0.1
由于IPv4数量有限,因此出现了IPv6(重点掌握IPv4)
IPv6有8段,由“:”分隔,如1080:0:0:0:8:800:200C:417A
特殊IP地址,本地会送地址(不访问其他网络,访问本地):127.0.0.1
【格式】
InetAddress host=InetAddress.getLocalHost() 获取本地主机
host.getHostName() 主机名
local.getHostAddress() 主机IP地址
InetAddress host=InetAddress.getByName() 获取指定主机
参数可以是IP地址"192.168.0.01"、域名地址“www.baidu.com”、计算机名“Jv”
InetAddress[ ] host=InetAddress.getAllByName() 获取指定主机的所有IP地址
public class Demo { public static void main(String[] args) { try { InetAddress local = InetAddress.getLocalHost();//获取本地主机对象 System.out.println("计算机名:" + local.getHostName());//本地主机名 System.out.println("本地IP:" + local.getHostAddress());//本地主机IP地址 InetAddress baidu = InetAddress.getByName("www.baidu.com");//获取百度服务器对象 System.out.println("百度IP:" + baidu.getHostAddress()); InetAddress[] baidus = InetAddress.getAllByName("www.baidu.com"); for (InetAddress ad : baidus) {//大型网站有多个IP,减少宕机损失 System.out.println("百度IP:" + ad.getHostAddress());//输出所有IP } } catch (UnknownHostException e1) { e1.printStackTrace(); } } }
以上是关于为啥获取了ipv6地址却无法访问纯ipv6网站的主要内容,如果未能解决你的问题,请参考以下文章