`
kavy
  • 浏览: 887978 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java判断是内网ip还是公网ip

 
阅读更多

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判断IP地址为内网IP还是公网IP的方法

    在Java编程中,判断一个IP地址是内网IP(Private IP)还是公网IP(Public IP)通常涉及到网络通信和TCP/IP协议的理解。TCP/IP协议为了提高网络效率和安全性,将一部分IP地址范围预留给了内部网络使用,这些IP地址...

    鹊桥(内网穿透),使用java基于aio/nio实现的内网穿透工具,致力于帮助开发者内网开发供外部调试使用

    这样,任何具有公网IP的设备都可以通过特定的地址和端口访问到内网服务。这通常涉及到TCP和UDP协议的处理,因为它们是网络通信的基础。 在压缩包文件`magpiebridge-master`中,我们可以找到MagpieBridge项目的源...

    Java获取google天气信息,且能根据ip地址获取所属地天气

    考虑到可能存在的内网环境,还可以使用第三方库如`geoip2`来获取公网IP。 接下来,将这些功能整合到一个Java程序中,你需要设计一个良好的架构。可以创建一个`WeatherService`类,包含`getWeatherByCityName(String...

    Java实现UDP穿透NAT技术

    1. **STUN(Traversal Using Relays around NAT)协议**:STUN是NAT穿透的基础,它允许设备发现自己的公网IP和端口映射。Java中没有内置的STUN库,但可以使用第三方库如JSTUN或libjingle来实现。 2. **服务器端**:...

    lanproxy是一个将局域网个人电脑服务器代理到公网的内网穿透工具

    2. **配置公网服务器**:在公网服务器上运行lanproxy,并指定监听的公网端口和要转发的目标内网IP和端口。 3. **配置内网设备**:在内网设备上运行lanproxy客户端,指定要映射的内网服务端口和公网服务器的地址及...

    Socket在公网上通信

    描述中提到的“使用花生壳加路由映射”是一种解决公网IP访问问题的方法,尤其适用于动态IP或无固定公网IP的环境。 花生壳是一款动态域名解析服务(DDNS)软件,它能够将用户的动态IP与固定的域名绑定,使得外部设备...

    基于java实现的将局域网电脑的端口映射到公网。或不走公网流量使用直连客户端方式映射局域网电脑.zip

    2. **端口映射原理**:了解NAT的工作机制,理解公网IP和私有IP的区别,以及如何设置路由器端口映射规则。 3. **STUN和ICE协议**:理解这两种协议如何帮助穿越NAT,让内网设备可以发现并直接与其它内网或公网设备...

    java内网调用海康萤石时使用的sdk

    海康萤石的SDK,名为“hcsdk”,可能包含了Java语言的接口,使得开发者可以使用Java编写代码来控制海康萤石的摄像头,如实时视频流的获取、录像回放、云台控制等功能。 在内网环境中进行调用,意味着服务器与摄像头...

    SocketHttp代理插件访问公网

    1、使用场景:应用部署的服务器在局域网内,因安全等原因没能开通跟公网的连接,但项目又需要访问互联网上的接口资源,只能通过内网中可以跟公网连接的一台服务器作为代理跳转请求公网资源,觉得其他代理插件麻烦就...

    内网搭建方法

    具体做法是将内网服务器的特定端口映射到公网IP地址上的相应端口,这样即使外部用户也可以通过公网IP访问到内网中的服务。 #### 四、总结 内网搭建是一个复杂但重要的过程,它不仅涉及到硬件的选择与配置,还包括...

    Java版本ngrok集成spring-boot随应用启动快速映射内网地址

    Java版本的ngrok是一款强大的工具,它允许开发者将内网服务暴露到公网,方便在远程环境中测试和调试。集成ngrok到Spring Boot项目中,可以实现应用启动时自动映射内网地址,这对于分布式系统、微服务架构以及移动...

    获取Ip地址代码

    在Web环境中,JavaScript可以通过`navigator`对象的`connection`属性获取设备的IP地址,但这通常只能获取到内网IP。如果需要获取公网IP,可以借助第三方API,例如`ipapi.co`: ```javascript async function ...

    显示本地IP地址代码

    如果需要内网IP,可能需要过滤掉公网IP。 在提供的压缩包文件“IPFind”中,可能包含了上述某种语言的实现代码,具体实现细节需要查看源码才能了解。学习和理解这些代码有助于开发者更好地处理网络相关的编程任务。

    获取外网IP

    外网IP,也称为公网IP,是互联网上唯一标识你设备的地址,使得其他网络上的设备能够与之通信。以下是对这个主题的详细解释: 1. **什么是外网IP**: 外网IP(公网IP)是指互联网服务提供商(ISP)分配给用户用于...

    IP归属地查询(改良版)源码下载

    IP地址分为公有地址(公网IP)和私有地址(内网IP)。公网IP是全球唯一的,而私有地址仅用于内部网络,不直接暴露在互联网上。 “改良版”的IP归属地查询通常意味着在原有的基础上进行了优化和改进,可能包括查询...

    获取IP地址实例代码

    请注意,获取的IP地址可能是内网IP(如192.168.*.*)或公网IP(如172.16.58.3),具体取决于设备的网络环境。在某些情况下,可能还需要处理多网卡、代理服务器等复杂情况,这需要更深入的网络编程知识。在实际应用中...

    docker容器通过ping直接运行获取公网IP操作

    通过容器获取本机的公网ip 可以用本地IP 多服务注册中心 把命令改居ping 执行可以拿到不同的服务器信息 public static String getIfconfigIP() { BufferedReader in = null; String outline = ; // timeOut ...

    获取本机IP给学习者使用

    2. **内网IP (Private IP)**:对于家庭或公司网络,设备通常有一个内网IP,如192.168.x.x或10.x.x.x,这是路由器分配的,用于在局域网内部通信。 3. **公网IP (Public IP)**:当你连接到互联网时,你的设备会被分配...

    NAT穿透java

    4. **STUN(Session Traversal Utilities for NAT)**:STUN服务器提供了一个机制,使内网设备能够发现其公网NAT映射的IP和端口。设备向STUN服务器发送请求,服务器回应包含设备的公网信息,然后设备可以使用这些...

Global site tag (gtag.js) - Google Analytics