当前位置: 首页 > 编程笔记 >

Java判断IP地址为内网IP还是公网IP的方法

万浩淼
2023-03-14
本文向大家介绍Java判断IP地址为内网IP还是公网IP的方法,包括了Java判断IP地址为内网IP还是公网IP的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法。分享给大家供大家参考。具体分析如下:

tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:

10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255

那么,直接上代码吧:

public static boolean internalIp(String ip) {

    byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);

    return internalIp(addr);

}

public static boolean internalIp(byte[] addr) {     final byte b0 = addr[0];     final byte b1 = addr[1];     //10.x.x.x/8     final byte SECTION_1 = 0x0A;     //172.16.x.x/12     final byte SECTION_2 = (byte) 0xAC;     final byte SECTION_3 = (byte) 0x10;     final byte SECTION_4 = (byte) 0x1F;     //192.168.x.x/16     final byte SECTION_5 = (byte) 0xC0;     final byte SECTION_6 = (byte) 0xA8;     switch (b0) {         case SECTION_1:             return true;         case SECTION_2:             if (b1 >= SECTION_3 && b1 <= SECTION_4) {                 return true;             }         case SECTION_5:             switch (b1) {                 case SECTION_6:                     return true;             }         default:             return false;     } }

希望本文所述对大家的Java程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法),包括了C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)的使用技巧和注意事项,需要的朋友参考一下 今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗号分隔开,日志截图如下: 之前获取ip地址的C#代码如下: 看来http

  • 本文向大家介绍Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP,包括了Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP的使用技巧和注意事项,需要的朋友参考一下

  • 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。一个弹性公网IP只能绑定一个虚拟机。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击

  • 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。一个弹性公网IP只能绑定一个虚拟机。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击

  • demo import java.io.IOException; import java.net.*; /**  * 查找IP地址  */ public class TestFindDNS {   public static void main(String[] args) throws IOException {     //     String href = "http://

  • 介绍 起初,IP地址只有两层结构:网络与主机。子网地址向其中添加了一层新的结构:不同于仅有主机,网络有分为子网与主机。每一个子网的功能近乎于完整的网络。子网的添加构成了三层网络结构:包含子网的网络,各自由若干主机构成。IP地址由此被分为三个部分:网络ID,子网ID与主机ID。IP地址长度仍固定为32位,其中,A类网络8位子网掩码,B类网络16位子网掩码,C类网络24位子网掩码。 更多信息 对于每一