/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* CidrFrame.java
*
* Created on Mar 28, 2011, 7:41:51 PM
*/
package org.openstack.atlas.util.cidr.gui;
import java.security.NoSuchAlgorithmException;
import org.openstack.atlas.util.cidr.validate.ValidateType;
import org.openstack.atlas.util.cidr.validate.ValidateVersion;
import org.openstack.atlas.util.cidr.validate.IpValidator;
import org.openstack.atlas.util.ip.ByteStreamOperation;
import org.openstack.atlas.util.ip.IPUtils;
import org.openstack.atlas.util.ip.IPv4Cidr;
import org.openstack.atlas.util.ip.IPv6Cidr;
import org.openstack.atlas.util.ip.IPv4;
import org.openstack.atlas.util.ip.IPv6;
import org.openstack.atlas.util.ip.exception.AccountUnHashableException;
import org.openstack.atlas.util.ip.exception.IPException;
import org.openstack.atlas.util.ip.exception.IPStringConversionException;
import org.openstack.atlas.util.ip.exception.IpTypeMissMatchException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CidrFrame extends javax.swing.JFrame {
private IPv6 ipv6 = new IPv6("::");
/** Creates new form CidrFrame */
public CidrFrame() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
CidrListPanel = new javax.swing.JPanel();
CidrLabel = new javax.swing.JLabel();
cidrField = new javax.swing.JTextField();
ipAddressLabel = new javax.swing.JLabel();
ipAddressField = new javax.swing.JTextField();
isContainedButton = new javax.swing.JButton();
ipRangeField = new javax.swing.JButton();
validateButton = new javax.swing.JButton();
ResultsPanel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
resultsTextArea = new javax.swing.JTextArea();
ClearTextButton = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
clusterCidrField = new javax.swing.JTextField();
accountIdField = new javax.swing.JTextField();
vipNumField = new javax.swing.JTextField();
ipv6Field = new javax.swing.JTextField();
ClusterCidrButton = new javax.swing.JButton();
accountIdButton = new javax.swing.JButton();
vipNumButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Silly CIDR Block Toy");
setBackground(new java.awt.Color(200, 200, 200));
setForeground(java.awt.Color.gray);
CidrListPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("IP Validation Crap"));
CidrListPanel.setName("cidrPanel"); // NOI18N
CidrLabel.setText("Cidr Blocks");
ipAddressLabel.setText("IpAddress");
isContainedButton.setText("isContained");
isContainedButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
isContainedButtonActionPerformed(evt);
}
});
ipRangeField.setText("ipRange");
ipRangeField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ipRangeFieldActionPerformed(evt);
}
});
validateButton.setText("Validate ipAddress");
validateButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
validateButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout CidrListPanelLayout = new javax.swing.GroupLayout(CidrListPanel);
CidrListPanel.setLayout(CidrListPanelLayout);
CidrListPanelLayout.setHorizontalGroup(
CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(CidrListPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(CidrListPanelLayout.createSequentialGroup()
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(ipAddressLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(CidrLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ipAddressField, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
.addComponent(cidrField, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)))
.addGroup(CidrListPanelLayout.createSequentialGroup()
.addComponent(isContainedButton, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(ipRangeField, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(validateButton, javax.swing.GroupLayout.PREFERRED_SIZE, 162, Short.MAX_VALUE)))
.addContainerGap())
);
CidrListPanelLayout.setVerticalGroup(
CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(CidrListPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(CidrLabel)
.addComponent(cidrField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ipAddressLabel)
.addComponent(ipAddressField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(CidrListPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(isContainedButton)
.addComponent(ipRangeField)
.addComponent(validateButton))
.addContainerGap(33, Short.MAX_VALUE))
);
ResultsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Results"));
resultsTextArea.setColumns(20);
resultsTextArea.setEditable(false);
resultsTextArea.setFont(new java.awt.Font("DejaVu Sans Mono", 1, 10));
resultsTextArea.setRows(5);
resultsTextArea.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jScrollPane1.setViewportView(resultsTextArea);
ClearTextButton.setLabel("Clear Text");
ClearTextButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ClearTextButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout ResultsPanelLayout = new javax.swing.GroupLayout(ResultsPanel);
ResultsPanel.setLayout(ResultsPanelLayout);
ResultsPanelLayout.setHorizontalGroup(
ResultsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(ResultsPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(ResultsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 837, Short.MAX_VALUE)
.addComponent(ClearTextButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
ResultsPanelLayout.setVerticalGroup(
ResultsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(ResultsPanelLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 486, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(ClearTextButton)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("IPv6 Crap"));
ipv6Field.setEditable(false);
ipv6Field.setFont(new java.awt.Font("DejaVu Sans Mono", 1, 13));
ipv6Field.setText("0000:0000:0000:0000:0000:0000:0000:0000");
ipv6Field.setBorder(javax.swing.BorderFactory.createEtchedBorder());
ClusterCidrButton.setText("Cluster Cidr");
ClusterCidrButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ClusterCidrButtonActionPerformed(evt);
}
});
accountIdButton.setText("AccountId");
accountIdButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
accountIdButtonActionPerformed(evt);
}
});
vipNumButton.setText("VipOctets");
vipNumButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
vipNumButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ClusterCidrButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)
.addComponent(accountIdButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)
.addComponent(vipNumButton, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(vipNumField)
.addComponent(clusterCidrField)
.addComponent(accountIdField, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)))
.addComponent(ipv6Field, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(clusterCidrField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ClusterCidrButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(accountIdField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(accountIdButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(vipNumField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(vipNumButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(ipv6Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ResultsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(CidrListPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(CidrListPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(ResultsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-902)/2, (screenSize.height-781)/2, 902, 781);
}// </editor-fold>//GEN-END:initComponents
private void isContainedButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_isContainedButtonActionPerformed
List<IPv6Cidr> ipv6CidrList = new ArrayList<IPv6Cidr>();
List<IPv4Cidr> ipv4CidrList = new ArrayList<IPv4Cidr>();
String cidrStr = this.cidrField.getText();
String ipStr = this.ipAddressField.getText();
String msg;
String format;
String trimedBlock;
if (cidrStr == null) {
msg = String.format("Nothing entered for cidr blocks\nCan not proceed");
this.resultsTextArea.append(msg);
return;
}
if (ipStr == null) {
msg = String.format("Nothing entered for ipAddress\nCan not proceed");
this.resultsTextArea.append(msg);
return;
}
for (String cidrBlock : cidrStr.split(",")) {
trimedBlock = cidrBlock.trim();
if (IPUtils.isValidIpv4Subnet(trimedBlock)) {
try {
ipv4CidrList.add(new IPv4Cidr(trimedBlock));
} catch (IPException ex) {
msg = String.format("%s was not a valid ipv4 block\n", trimedBlock);
continue;
}
} else if (IPUtils.isValidIpv6Subnet(trimedBlock)) {
try {
ipv6CidrList.add(new IPv6Cidr(trimedBlock));
} catch (IPException ex) {
msg = String.format("%s was not a valid ipv6 block\n", trimedBlock);
this.resultsTextArea.append(trimedBlock);
continue;
}
} else {
format = "cidrBlock %s is not valid ipv4 or ipv6 skipping\n";
msg = String.format(format, trimedBlock);
this.resultsTextArea.append(trimedBlock);
continue;
}
}
if (IPUtils.isValidIpv4String(ipStr)) {
for (IPv4Cidr cidr : ipv4CidrList) {
try {
msg = (cidr.contains(ipStr))
? String.format("%s INSIDE %s\n", ipStr, cidr.getCidr())
: String.format("%s OUTSIDE %s\n", ipStr, cidr.getCidr());
this.resultsTextArea.append(msg);
} catch (IPException ex) {
msg = String.format("ip %s was not a valid ipv4 address\n", ipStr);
this.resultsTextArea.append(msg);
return;
}
}
} else if (IPUtils.isValidIpv6String(ipStr)) {
for (IPv6Cidr cidr : ipv6CidrList) {
try {
msg = (cidr.contains(ipStr))
? String.format("%s INSIDE %s\n", ipStr, cidr.getCidr())
: String.format("%s OUTSIDE in %s\n", ipStr, cidr.getCidr());
this.resultsTextArea.append(msg);
} catch (IPException ex) {
msg = String.format("ip %s was not a valid ipv6 address\n", ipStr);
this.resultsTextArea.append(msg);
return;
}
}
} else {
format = "ip %s was neither a valid IPv4 address or IPv6 Address. "
+ "Cannnot continue\n";
msg = String.format(format, ipStr);
this.resultsTextArea.append(msg);
}
}//GEN-LAST:event_isContainedButtonActionPerformed
private void ClearTextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ClearTextButtonActionPerformed
this.resultsTextArea.setText("");
}//GEN-LAST:event_ClearTextButtonActionPerformed
private void ipRangeFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipRangeFieldActionPerformed
String ipInput = this.cidrField.getText();
String loIp;
String hiIp;
String cidrTrimed;
String range;
String msg;
for (String cidrBlock : ipInput.split(",")) {
cidrTrimed = cidrBlock.trim();
loIp = getLoIp(cidrTrimed);
hiIp = getHiIp(cidrTrimed);
if ((loIp == null) || (hiIp == null)) {
range = "UNKNOWN do to an invalid cidrBloc\n";
msg = String.format("%s: %s\n\n", cidrTrimed, range);
}
msg = String.format("%s:\n Lo=%s\n HI=%s\n\n", cidrTrimed, loIp, hiIp);
this.resultsTextArea.append(msg);
}
}//GEN-LAST:event_ipRangeFieldActionPerformed
private void validateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_validateButtonActionPerformed
List<IpValidator> validatorList = new ArrayList<IpValidator>();
String validStr;
String ip;
ip = ipAddressField.getText();
if(ip==null) {
ip = "Null";
}
validatorList.add(new IpValidator(ValidateType.IP, ValidateVersion.IPV4));
validatorList.add(new IpValidator(ValidateType.SUBNET, ValidateVersion.IPV4));
validatorList.add(new IpValidator(ValidateType.IP, ValidateVersion.IPV6));
validatorList.add(new IpValidator(ValidateType.SUBNET, ValidateVersion.IPV6));
for(IpValidator ipvalidator : validatorList) {
validStr = ipvalidator.getValidateResultStringNoExcept(ip);
resultsTextArea.append(validStr);
}
}//GEN-LAST:event_validateButtonActionPerformed
private void ClusterCidrButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ClusterCidrButtonActionPerformed
IPv6Cidr ipv6Cidr;
String ipExpanded;
try {
ipv6Cidr = new IPv6Cidr(clusterCidrField.getText());
} catch (IPStringConversionException ex) {
resultsTextArea.append("Cluster is not a valid IPv6 Cidr block\n");
return;
}
try {
ipv6.setClusterPartition(ipv6Cidr);
} catch (IPStringConversionException ex) {
resultsTextArea.append("Unable to set Cluster parition\n");
return;
}
displayIpv6(ipv6);
}//GEN-LAST:event_ClusterCidrButtonActionPerformed
private void accountIdButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_accountIdButtonActionPerformed
int accountId;
try{
accountId = Integer.parseInt(accountIdField.getText());
}catch(NumberFormatException ex){
resultsTextArea.append(String.format("Could not convert '%s' to Integer\n",accountIdField.getText()));
return;
}
try {
ipv6.setAccountPartition(accountId);
} catch (AccountUnHashableException ex) {
resultsTextArea.append(String.format("sha1sum Algo must be missing or something NoSuchAlgorithmException caught\n"));
return;
} catch (IPStringConversionException ex) {
resultsTextArea.append(String.format("ip '%s' must not be a valid IPv6 address can not set account hash\n",ipv6.getString()));
return;
}
displayIpv6(ipv6);
}//GEN-LAST:event_accountIdButtonActionPerformed
private void vipNumButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vipNumButtonActionPerformed
int vipNum;
try{
vipNum = Integer.parseInt(vipNumField.getText());
}catch(NumberFormatException ex){
resultsTextArea.append(String.format("Could not convert '%s' to Integer\n",accountIdField.getText()));
return;
}
try {
ipv6.setVipOctets(vipNum);
} catch (IPStringConversionException ex) {
resultsTextArea.append(String.format("ip '%s' must not be a valid IPv6 address can not set account hash\n",ipv6.getString()));
return;
}
displayIpv6(ipv6);
}//GEN-LAST:event_vipNumButtonActionPerformed
private void displayIpv6(IPv6 ip) {
String ipStr;
try {
ipStr = ip.expand();
} catch (IPStringConversionException ex) {
resultsTextArea.append(String.format("Could not expand '%s'\n",ip.getString()));
return;
}
ipv6Field.setText(ipStr);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CidrFrame().setVisible(true);
}
});
}
private String getHiIp(String ipBlock) {
byte[] maskBytes;
byte[] ipBytes;
byte[] ipCalcBytes;
String ipOut;
IPv4Cidr ipv4Cidr;
IPv6Cidr ipv6Cidr;
if (IPUtils.isValidIpv4Subnet(ipBlock)) {
try {
ipv4Cidr = new IPv4Cidr(ipBlock);
ipBytes = ipv4Cidr.getIpBytes();
maskBytes = ipv4Cidr.getMaskBytes();
maskBytes = IPUtils.invBytes(maskBytes);
ipCalcBytes = IPUtils.opBytes(ipBytes, maskBytes, ByteStreamOperation.OR);
ipOut = new IPv4(ipCalcBytes).getString();
return ipOut;
} catch (IPException ex) {
return null;
}
} else if (IPUtils.isValidIpv6Subnet(ipBlock)) {
try {
ipv6Cidr = new IPv6Cidr(ipBlock);
ipBytes = ipv6Cidr.getIpBytes();
maskBytes = ipv6Cidr.getMaskBytes();
maskBytes = IPUtils.invBytes(maskBytes);
ipCalcBytes = IPUtils.opBytes(ipBytes, maskBytes, ByteStreamOperation.OR);
ipOut = new IPv6(ipCalcBytes).getString();
return ipOut;
} catch (IPException ex) {
return null;
}
} else {
return null;
}
}
private String getLoIp(String ipBlock) {
byte[] maskBytes;
byte[] ipBytes;
byte[] ipCalcBytes;
String ipOut;
IPv4Cidr ipv4Cidr;
IPv6Cidr ipv6Cidr;
if (IPUtils.isValidIpv4Subnet(ipBlock)) {
try {
ipv4Cidr = new IPv4Cidr(ipBlock);
ipBytes = ipv4Cidr.getIpBytes();
maskBytes = ipv4Cidr.getMaskBytes();
ipCalcBytes = IPUtils.opBytes(ipBytes, maskBytes, ByteStreamOperation.AND);
ipOut = new IPv4(ipCalcBytes).getString();
return ipOut;
} catch (IPException ex) {
return null;
}
} else if (IPUtils.isValidIpv6Subnet(ipBlock)) {
try {
ipv6Cidr = new IPv6Cidr(ipBlock);
ipBytes = ipv6Cidr.getIpBytes();
maskBytes = ipv6Cidr.getMaskBytes();
ipCalcBytes = IPUtils.opBytes(ipBytes, maskBytes, ByteStreamOperation.AND);
ipOut = new IPv6(ipCalcBytes).getString();
return ipOut;
} catch (IPException ex) {
return null;
}
} else {
return null;
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel CidrLabel;
private javax.swing.JPanel CidrListPanel;
private javax.swing.JButton ClearTextButton;
private javax.swing.JButton ClusterCidrButton;
private javax.swing.JPanel ResultsPanel;
private javax.swing.JButton accountIdButton;
private javax.swing.JTextField accountIdField;
private javax.swing.JTextField cidrField;
private javax.swing.JTextField clusterCidrField;
private javax.swing.JTextField ipAddressField;
private javax.swing.JLabel ipAddressLabel;
private javax.swing.JButton ipRangeField;
private javax.swing.JTextField ipv6Field;
private javax.swing.JButton isContainedButton;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea resultsTextArea;
private javax.swing.JButton validateButton;
private javax.swing.JButton vipNumButton;
private javax.swing.JTextField vipNumField;
// End of variables declaration//GEN-END:variables
}