Java判断IP地址类型(第二版)

简介: 1 import java.net.Inet4Address; 2 import java.net.Inet6Address; 3 import java.net.InetAddress; 4 import java.net.UnknownHostException; 5 6 /* 7 * 第一版判断Ipv4或者Ipv6是通过是通过长度来实现的(4段为Ipv4,16段是Ipv6),由于判断的是本机IP, 8 * 所以没有校验值得合法性; 9 * 后来学了正则表达式; 10 * 现在使用instanceof操作符。
 1 import java.net.Inet4Address;
 2 import java.net.Inet6Address;
 3 import java.net.InetAddress;
 4 import java.net.UnknownHostException;
 5 
 6 /*
 7  * 第一版判断Ipv4或者Ipv6是通过是通过长度来实现的(4段为Ipv4,16段是Ipv6),由于判断的是本机IP,
 8  * 所以没有校验值得合法性;
 9  * 后来学了正则表达式;
10  * 现在使用instanceof操作符。
11  */
12 public class TestIP {
13 
14     public static void main(String[] args) throws UnknownHostException {
15         // TODO Auto-generated method stub
16         /*
17          * 老师说了getByName已经根据地址类型返回Inet4Address或者Inet6Address
18          * 所以直接使用instanceof;
19          * 原来发现有问题,结果改成了Object ia = (Object)InetAddress.getByName("www.baidu.com")对了,
20          * 后来发现忘记引入包了Inet4Address和Inet6Address.
21          */
22         InetAddress ia = InetAddress.getByName("www.baidu.com");
23         System.out.println(ia);
24         
25         boolean flag1 = ia instanceof Inet4Address;
26         boolean flag2 = ia instanceof Inet6Address;
27         
28         if(flag1) {
29             System.out.println("IPV4地址");
30             System.out.println("根据第一字节判断类别(A到E)!");
31         }else if(flag2) {
32             System.out.println("IPV6地址");
33         }else {
34             System.out.println("非法IP");//若是发生UnknownHostException则该句有效
35         }
36     }
37 
38 }

 

目录
相关文章
|
3月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
106 4
|
2月前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
89 2
|
2月前
|
存储 Java 编译器
Java泛型类型擦除以及类型擦除带来的问题
泛型擦除是指Java编译器在编译期间会移除所有泛型信息,使所有泛型类型在运行时都变为原始类型。例如,`List<String>` 和 `List<Integer>` 在JVM中都视为 `List`。因此,通过 `getClass()` 比较两个不同泛型类型的 `ArrayList` 实例会返回 `true`。此外,通过反射调用 `add` 方法可以向 `ArrayList<Integer>` 中添加字符串,进一步证明了泛型信息在运行时被擦除。
52 2
|
3月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
194 6
|
2月前
|
数据采集 Java API
java怎么设置代理ip:简单步骤,实现高效网络请求
本文介绍了在Java中设置代理IP的方法,包括使用系统属性设置HTTP和HTTPS代理、在URL连接中设置代理、设置身份验证代理,以及使用第三方库如Apache HttpClient进行更复杂的代理配置。这些方法有助于提高网络请求的安全性和灵活性。
|
3月前
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
284 5
|
3月前
|
设计模式 Java
Java“不能转换的类型”解决
在Java编程中,“不能转换的类型”错误通常出现在尝试将一个对象强制转换为不兼容的类型时。解决此问题的方法包括确保类型间存在继承关系、使用泛型或适当的设计模式来避免不安全的类型转换。
356 7
|
3月前
|
Java
Java 中锁的主要类型
【10月更文挑战第10天】
|
3月前
|
安全 Java
Java“不兼容类型” 错误怎么查找解决
在 Java 中遇到“不兼容类型”错误时,首先理解错误信息,它表明试图将一种类型赋给不兼容的类型。检查代码中类型不匹配的赋值、方法调用参数类型不匹配、表达式类型不兼容及泛型类型不匹配等问题。解决方法包括进行类型转换、修改代码逻辑、检查方法参数和返回类型以及处理泛型类型不匹配。通过这些步骤,可以有效解决“不兼容类型”错误,确保代码类型兼容性良好。
610 9