基于Java图形界面的IPV4与网址的地址解析器
时间:2022-07-22
本文章向大家介绍基于Java图形界面的IPV4与网址的地址解析器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基于Java图形界面的IPV4与网址的地址解析器
效果图
正则判断IPV4地址
//正则判断是不是ipv4地址 a.b.c.d
public static boolean isIPv4(String data) {
if (data == null) {
return false;
}
Boolean bol = false;
Pattern pattern = Pattern.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}");
bol = pattern.matcher(data).matches();
if(bol==true) { //如果格式对了,那就在判断数字的大小
String[] split = data.split("\.");
System.err.println( split.length);
for (int i = 0; i < split.length; i++) {
String string = split[i];
System.out.println(string);
if(Integer.valueOf(string)>244) {
bol=false;
}
}
}
return bol;
}
正则判断URL
//正则判断是不是网址 www.abc.asd、www.a.d.s、q.w.d.c
public static boolean iswww(String data) {
if (data == null) {
return false;
}
//http:// https:// 带前缀的
// Pattern pattern = Pattern.compile("^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$");
//不带前缀的
Pattern pattern = Pattern.compile("^(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$");
return pattern.matcher(data).matches();
}
全部代码
package test02;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class test02 extends JFrame implements ActionListener{
public static void main(String[] args) {
new test02();
}
JLabel j1 = null;//提示
JTextField jt1 = null;//接收输入的参数
JButton jb1 = null;//确认按钮
JTextArea jta = null;//显示结果的文本域
public test02() {
this.setTitle("地址域名解析器-v0.2");
this.setLayout(null);
j1 = new JLabel("请输入您要解析的IPV4地址或者域名:");
jt1 = new JTextField(100);
jb1 = new JButton("解析");
jb1.addActionListener(this);
jta = new JTextArea();
this.add(j1);
this.add(jt1);
this.add(jb1);
this.add(jta);
j1.setBounds(30, 10, 250, 30);
jt1.setBounds(303, 10, 300, 30);
jb1.setBounds(630, 10, 100, 30);
jta.setBounds(30, 80, 630, 200);
this.setSize(800, 400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jb1) {
String data = jt1.getText();//获取用户输入的数据
if(isIPv4(data)==true) {
try {
InetAddress[] allByName = InetAddress.getAllByName(data);
StringBuffer str = new StringBuffer();
jta.setText("解析成功,结果:"+(new Date().toString())+"n");
for (InetAddress net:allByName) {
jta.append(String.valueOf(net)+"n");
}
} catch (UnknownHostException e1) {
System.out.println("出错了:"+e1.getMessage()+"不正确");
jta.setText("出错了:"+e1.getMessage()+"不正确");
}
}else if(iswww(data)==true) {
try {
InetAddress[] allByName = InetAddress.getAllByName(data);
StringBuffer str = new StringBuffer();
jta.setText("解析成功,结果:"+(new Date().toString())+"n");
for (InetAddress net:allByName) {
jta.append(String.valueOf(net)+"n");
}
} catch (UnknownHostException e1) {
System.out.println("出错了:"+e1.getMessage()+"不正确");
jta.setText("出错了:"+e1.getMessage()+"不正确");
}
}else {
jta.setText("您输入的数据不合法,请检查后重新数据!");
}
}
}
//正则判断是不是网址 www.abc.asd、www.a.d.s、q.w.d.c
public static boolean iswww(String data) {
if (data == null) {
return false;
}
//http:// https:// 带前缀的
// Pattern pattern = Pattern.compile("^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$");
//不带前缀的
Pattern pattern = Pattern.compile("^(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$");
return pattern.matcher(data).matches();
}
//正则判断是不是ipv4地址 a.b.c.d
public static boolean isIPv4(String data) {
if (data == null) {
return false;
}
Boolean bol = false;
Pattern pattern = Pattern.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}");
bol = pattern.matcher(data).matches();
if(bol==true) { //如果格式对了,那就在判断数字的大小
String[] split = data.split("\.");
System.err.println( split.length);
for (int i = 0; i < split.length; i++) {
String string = split[i];
System.out.println(string);
if(Integer.valueOf(string)>244) {
bol=false;
}
}
}
return bol;
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 视频综合管理平台EasyNVS显示的rtsp和rtmp穿透地址错误如何解决?
- 开发RTSP协议视频平台EasyNVR采用ffmpeg集成fdk-aac报no member named “encoderDelay”
- 微信小程序开发实战(17):用画布画一张笑脸
- PHP中Session ID的实现原理分析和实例解析
- 【好文推荐】黑莓OS手册是如何详细阐述底层的进程和线程模型的?
- 简析Spark Streaming/Flink的Kafka动态感知
- 微信小程序开发实战(19):页面导航
- Kotlin:02-函数的声明
- 「MoreThanJava」Day 5:面向对象进阶—继承详解
- 要点1:指针、数组和复合字面量
- akka-typed(9) - 业务分片、整合,谈谈lagom, 需要吗?
- com-IFileDlg 进行文件的 打开或者保存
- 哆啦A梦?不好记!安利一下Prometheus这款开源的企业监控报警平台
- Kotlin:03-变量、常量、数据类型
- nginx工程师,需要上承天命,下召九幽