理解公网IP和内网IP的区别

什么是内网IP、公网IP?

内网IP:
在这里插入图片描述

由图可以看到路由器(第一层),交换机(第二层)然后是自己的电脑,所谓的内网就是从路由器以下开始的。我们内网用户的电脑都是经过交换机和路由器之后才能连到外网。

路由器只需一个公网IP就可以供下面多个电脑联网使用。由于不同的内网IP能够重复使用。所以内网IP通常有以下类型:

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

这些IP就是内网IP,其中你家的IP是否也在其中呢?

公网IP:

在这里插入图片描述

拥有公网IP,用户就无需经过路由器或交换机,直接可以上网。除此之外,还能够直接被外界所访问到,无需经如何设备,直接连接电脑。

如何辨别自家网络是公网IP呢?其实除了上文中提到的内网IP,其余基本都是公网IP。

公网IP有什么好处呢?

其实最早我们使用的网络都是公网IP,但是随着电脑的普及,运营商没有足够的公网IPV4地址分配给用户,所以只能偷偷的将公网IP换为内网IP分给多个用户使用,不过这也给用户使用体验造成了不少影响。

1、公网IP有更好的下载体验

在这里插入图片描述

相信不少用户都曾遇到过使用P2P下载电影、游戏资源,搜索不到资源或是下载速度慢的情况。如果拥有公网IP,当进行P2P下载的时候,能够更快地找到其他节点,获取更多下载数据,下载速度更快,下载资源也不容易断流。如果是内网IP,一些稍微“冷门”的资源可能根本无法下载。

2、公网IP更出色的互联体验

随着物联网的快速发展,很多智能设备都支持连接网络(智能电视、智能摄像头等),例如家中的智能安全摄像头,如果用户是公网IP,用户可以直接通过公网IP连接,不经过任何第三方服务器,免去了泄露隐私的风险。

3、公网IP游戏体验更出色

在这里插入图片描述

如果你是一名主机玩家,肯定有过此类经历,一些游戏需要NAT2类型才能联机而NAT3则不能,还有如果在Steam上建主机玩救生之路2,建好房间后发现别人都进不来。这就是内网IP和公网IP的区别。公网IP无需路由器或交换机转发,联机效率更高,而且有些游戏硬性跪地需要公网IP才能连接。

如何才能更换公网IP?

用户如果对公网IP有必要需求,可以尝试联系自家网络运营商,可能有机会更换公网IP,不过由于目前公网IP(IPV4)基本已经分配完毕,使用出现枯竭,能够长期使用公网IP的可能非常渺小,只能希望IPV6技术的尽快普及,彻底解决公网IP枯竭的问题。

转载地址:https://www.sohu.com/a/206281394_374283

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中获取用户的公网IP内网IP需要进行不同的操作: 1. 获取公网IP 获取公网IP可以通过访问外部网站来获取,可以通过以下代码实现: ```java import java.net.InetAddress; import java.net.UnknownHostException; import java.io.IOException; public class PublicIP { public static void main(String[] args) { try { InetAddress addr = InetAddress.getByName("www.baidu.com"); System.out.println("Public IP: " + addr.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } } ``` 在上述代码中,我们通过访问百度网站来获取公网IP。 2. 获取内网IP 获取内网IP需要通过访问本地网络接口来获取,可以通过以下代码实现: ```java import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; public class LocalIP { public static void main(String[] args) { try { Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()){ NetworkInterface ni = interfaces.nextElement(); Enumeration<InetAddress> addresses = ni.getInetAddresses(); while (addresses.hasMoreElements()){ InetAddress addr = addresses.nextElement(); if (!addr.isLinkLocalAddress() && !addr.isLoopbackAddress() && addr.isSiteLocalAddress()){ System.out.println("Local IP: " + addr.getHostAddress()); } } } } catch (SocketException e) { e.printStackTrace(); } } } ``` 在上述代码中,我们通过遍历本地网络接口来获取内网IP。在获取到的IP地址中,排除了本地链路地址和回环地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值