博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaFX校验IP和端口的合法性
阅读量:4708 次
发布时间:2019-06-10

本文共 6604 字,大约阅读时间需要 22 分钟。

               我们人这一辈子不是别人的楷模,就是别人的借鉴。

               今天项目添加了一些功能,主要实现网络的一些设置,如图:

               

 主要有几个文本框和两个按钮,这两个按钮一个是查看   

btnInternetCheck.setOnAction((ActionEvent event) -> {
//查看 int vcode = Datastruct.armmV * 100 * 100 + Datastruct.armsV * 100 + Datastruct.armdV; if(vcode>=8*10000+100+5){
//版本大于8.1.5可以使用 List
gi = prtl.rdGatewayIP(); List
sm = prtl.rdSubMask(); List
ia = prtl.rdIPAddr(); List
sp = prtl.rdS0Port(); List
pa = prtl.rdPhyAddr(); tfGatewayIP.setText(""+gi.get(0) + "." + gi.get(1) + "." + gi.get(2) + "." + gi.get(3)); tfSubnetMask.setText(""+sm.get(0) + "." + sm.get(1) + "." + sm.get(2) + "." + sm.get(3)); tfLocalIP.setText(""+ia.get(0) + "." + ia.get(1) + "." + ia.get(2) + "." + ia.get(3)); tfPortNumber.setText("" + (((sp.get(0)&0xff)<<8)+((sp.get(1))&0xff))); tfPhysicalLocation.setText(""+pa.get(0) + "." + pa.get(1) + "." + pa.get(2) + "." + pa.get(3) + "." + pa.get(4) + "." + pa.get(5)); } });

一个是修改

btnInternetModify.setOnAction((ActionEvent event) -> {
//修改 boolean flag=false; String gatewayIP = tfGatewayIP.getText(); String subnetMask = tfSubnetMask.getText(); String localIP = tfLocalIP.getText(); String portNumber = tfPortNumber.getText(); String physicalLocation = tfPhysicalLocation.getText(); if(isIp(gatewayIP)){
//是IP地址 List
list=convertListByString(gatewayIP);//转换 prtl.setGateway_IP(list.get(0), list.get(1), list.get(2), list.get(3));//设值 flag=true; }else{
//提示信息 showWaringDialog(null, strGatewayIPError, strInfoError, Global.strInfoOk); flag=false; return; } if(isIp(subnetMask)){
//是IP地址 List
list=convertListByString(subnetMask);//转换 prtl.setSub_Mask(list.get(0), list.get(1), list.get(2), list.get(3));//设值 flag=true; }else{
//提示信息 showWaringDialog(null, strSubnetMaskError, strInfoError, Global.strInfoOk); flag=false; return; } if(isIp(localIP)){
//是IP地址 List
list=convertListByString(localIP);//转换 prtl.setIP_Addr(list.get(0), list.get(1), list.get(2), list.get(3));//设值 flag=true; }else{
//提示信息 showWaringDialog(null, strLocalIPError, strInfoError, Global.strInfoOk); flag=false; return; } if(isPort(portNumber)){ int port = getPort(portNumber);//获取修改后的端口 if(port>=1000&&port<=65535){ int portH = (port >> 8) & 0xff; //高位 int portL = (port) & 0xff; //低位 prtl.SetS0_Port(portH, portL); flag = true; }else{ showWaringDialog(null, strPortError, strInfoError, Global.strInfoOk); flag = false; return; } }else{ showWaringDialog(null, strPortError, strInfoError, Global.strInfoOk); flag=false; return; } if(isPhysicalLocation(physicalLocation)){
//是物理地址 List
list=convertListByString(physicalLocation);//转换 prtl.setPhy_Addr(list.get(0), list.get(1), list.get(2), list.get(3),list.get(4),list.get(5));//设值 flag=true; }else{
//提示信息 showWaringDialog(null, strPhyError, strInfoError, Global.strInfoOk); flag=false; return; } if(flag){ showMessageDialog(null, strModifySuccess, strInfoDone, Global.strInfoOk); } }); }

从上面代码我们可以看出主要有几个校验是否合格的方法isIP(String)、isPort(String)、isPhysicalLocation(String)和转换字符串(IP)成List集合的方法convertListByString(String),代码如下

  

boolean isIp(String IP){
//判断是否是一个IP boolean b = false; IP = trimSpaces(IP); if(IP.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")){ //不能让用户输入字母和符号,只能是数字 String s[] = IP.split("\\."); if(Integer.parseInt(s[0])<=255) if(Integer.parseInt(s[1])<=255) if(Integer.parseInt(s[2])<=255) if(Integer.parseInt(s[3])<=255) b = true; } return b; }
boolean isPort(String port){
//判断是否是端口并返回端口号 boolean flag=false; port=trimSpaces(port); int p=5000; try { p=Integer.parseUnsignedInt(port); flag=true; } catch (Exception e) { flag=false; } return flag; }

 

boolean isPhysicalLocation(String pl){
//判断是否是一个物理地址 boolean b = false; pl = trimSpaces(pl); if(pl.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")){ //不能让用户输入字母和符号,只能是数字 String s[] = pl.split("\\."); if(Integer.parseInt(s[0])<=255) if(Integer.parseInt(s[1])<=255) if(Integer.parseInt(s[2])<=255) if(Integer.parseInt(s[3])<=255) if(Integer.parseInt(s[4])<=255) if(Integer.parseInt(s[5])<=255) b = true; } return b; }
List
convertListByString(String IPstr){
//转换IP为4个数字存于List集合中 String rx="\\.";// '.' 是转义字符 IPstr=trimSpaces(IPstr); String[] result=IPstr.split(rx); List
list=new ArrayList(); for (int i = 0; i < result.length; i++) { list.add(Integer.parseInt(result[i])); } return list; }

我么可以看出中间用到了trimSpaces(String)方法来去掉字符串前后的所有空格

String trimSpaces(String IPstr){
//去掉IP字符串前后所有的空格 String IP=new String(IPstr); while(IP.startsWith(" ")){ IP= IP.substring(1,IP.length()).trim(); } while(IP.endsWith(" ")){ IP= IP.substring(0,IP.length()-1).trim(); } return IP; }

通过上述操作我们就可以实现校验IP和端口的合法性,下次见!

 

 

 

             

            

 

               

转载于:https://www.cnblogs.com/wth1129/p/6831431.html

你可能感兴趣的文章
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
团队项目(第五周)
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
.net开源CMS
查看>>
JdbcTemplate
查看>>
第一次使用maven记录
查看>>
SharePoint服务器端对象模型 之 使用CAML进展数据查询
查看>>
Building Tablet PC Applications ROB JARRETT
查看>>
Adobe® Reader®.插件开发
查看>>
【POJ 3461】Oulipo
查看>>
Alpha 冲刺 (5/10)
查看>>
使用Siege进行WEB压力测试
查看>>
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>