Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package confgen;
- import java.io.FileInputStream;
- import java.io.PrintWriter;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.regex.Pattern;
- /*Excell olvasásához kell*/
- import org.apache.poi.hssf.usermodel.*;
- import org.apache.poi.poifs.filesystem.*;
- import org.apache.commons.validator.routines.InetAddressValidator;
- /**
- * @author gyula
- *
- */
- enum DebugLevelType { OFF, LOW, MEDIUM, HIGH, DEBUG };
- public class confgen {
- private static final DebugLevelType debugLevel = DebugLevelType.MEDIUM;
- private static void log(DebugLevelType eventLevel, String message){
- if (debugLevel.ordinal()>=eventLevel.ordinal()) System.out.println(message);
- } //
- /*
- private static void printCell(HSSFCell cell, int r, int c) {
- switch (cell.getCellType()) {
- case HSSFCell.CELL_TYPE_STRING:
- System.out.println("Cella (str)(" + r + "," + c + ") " + cell.getStringCellValue());
- break;
- case HSSFCell.CELL_TYPE_NUMERIC:
- System.out.println("Cella (num)(" + r + "," + c + ") " + cell.getNumericCellValue());
- break;
- case HSSFCell.CELL_TYPE_FORMULA:
- System.out.println("Cella (formula)(" + r + "," + c + ") " + cell.getCellFormula());
- break;
- }
- } //printCell
- */
- private static String getCellAsString(HSSFCell cell) {
- if (cell != null) {
- switch (cell.getCellType()) {
- case HSSFCell.CELL_TYPE_STRING:
- return cell.getStringCellValue();
- case HSSFCell.CELL_TYPE_NUMERIC:
- return Double.toString(cell.getNumericCellValue());
- case HSSFCell.CELL_TYPE_FORMULA:
- return cell.getCellFormula().toString();
- }
- }
- return "";
- } //getCellAsString
- private static boolean validateMac(String mac) {
- final String macValidatorPattern = "^([0-9a-fA-F]{2}[:-])" + "{5}([0-9a-fA-F]{2})$";
- return Pattern.matches(macValidatorPattern, mac);
- }//validateMac
- private static String standardizeMac(String mac) {
- return mac.replaceAll("[-.]", ":").toUpperCase();
- } //standardizeMac
- private static final String excelFileName = "c:\\outdir\\mac_dns_uj.xls";
- private static final String dhcpFileName = "c:\\outdir\\wifi_dhcp.conf";
- private static final String dnsZoneFileName = "c:\\outdir\\wifiZone.include";
- private static final String reverseZoneFileName = "c:\\outdir\\wifiReverseZone.include";
- private static final String radiusUserFileName = "c:\\outdir\\wifi.users";
- private static final InetAddressValidator IpValidator = new InetAddressValidator();
- public static void main(String[] args) {
- //Excell
- try ( PrintWriter dhcpWriter = new PrintWriter(dhcpFileName, "UTF-8");
- PrintWriter dnsWriter = new PrintWriter(dnsZoneFileName, "UTF-8");
- PrintWriter reverseWriter = new PrintWriter(reverseZoneFileName, "UTF-8");
- PrintWriter radiusWriter = new PrintWriter(radiusUserFileName, "UTF-8")) {
- dhcpWriter.println("#dhcp statikus excelbol generalva");
- dnsWriter.println(";intranet zona file excel-bol generalva");
- reverseWriter.println(";intranet reverse zona file excel-bol generalva");
- radiusWriter.println("#radius users file excel-bol generalva");
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(excelFileName));
- HSSFWorkbook wb = new HSSFWorkbook(fs);
- HSSFSheet sheet = wb.getSheetAt(0);
- HSSFRow row;
- //HSSFCell cell;
- int rows; // No of rows
- rows = sheet.getPhysicalNumberOfRows();
- Map<String, String> netObject = new HashMap<String, String>();
- for (int rowIndex=1;rowIndex<rows;rowIndex++) {
- row = sheet.getRow(rowIndex);
- String MAC = getCellAsString(row.getCell(0));
- if (MAC.length()>0 && validateMac(MAC)){
- netObject.put("MAC",standardizeMac(MAC));
- if (IpValidator.isValidInet4Address(getCellAsString(row.getCell(1)))) {
- netObject.put("ipAddress",getCellAsString(row.getCell(1)));
- }
- else {
- netObject.put("ipAddress","");
- log(DebugLevelType.MEDIUM,"Érvénytelen IP cím a "+ rowIndex +". sorban.");
- }
- if (IpValidator.isValidInet4Address(getCellAsString(row.getCell(2)))) {
- netObject.put("net",getCellAsString(row.getCell(2)));
- }
- else {
- netObject.put("net","");
- log(DebugLevelType.MEDIUM,"Érvénytelen hálózati cím a "+ rowIndex +". sorban.");
- }
- netObject.put("dhcpGroup",getCellAsString(row.getCell(3)));
- netObject.put("interfaceType",getCellAsString(row.getCell(4)));
- netObject.put("wifiUser",getCellAsString(row.getCell(5)));
- netObject.put("wifiPass",getCellAsString(row.getCell(6)));
- netObject.put("dnsName",getCellAsString(row.getCell(7)));
- netObject.put("pcName",getCellAsString(row.getCell(8)));
- netObject.put("user",getCellAsString(row.getCell(9)));
- netObject.put("category",getCellAsString(row.getCell(10)));
- netObject.put("location",getCellAsString(row.getCell(11)));
- netObject.put("modell",getCellAsString(row.getCell(12)));
- netObject.put("opSys",getCellAsString(row.getCell(13)));
- netObject.put("serialNumber",getCellAsString(row.getCell(14)));
- netObject.put("comment",getCellAsString(row.getCell(15)));
- log(DebugLevelType.HIGH,netObject.toString());
- // RADIUS
- if (netObject.get("wifiUser") != null && netObject.get("wifiUser").trim().length()>0
- && netObject.get("wifiPass") != null && netObject.get("wifiPass").trim().length()>0){
- radiusWriter.println(netObject.get("wifiUser")+
- "\tCleartext-Password := \""+netObject.get("wifiPass")+
- "\" , Calling-Station-Id := \""+netObject.get("MAC")+"\"");
- radiusWriter.println("\tReply-Message = \"" + netObject.get("wifiUser")+" "+netObject.get("category")+" logged in.\"");
- }//if
- else {
- log(DebugLevelType.MEDIUM,"Nincs radius adat "+ rowIndex +". sorban.");
- }
- //DHCP
- if (netObject.get("ipAddress") != null && netObject.get("ipAddress").trim().length()>0
- && netObject.get("dnsName") != null && netObject.get("dnsName").trim().length()>0){
- dhcpWriter.println("# "+netObject.get("user")+" "+netObject.get("category")+" "+netObject.get("modell")+" hely:"+netObject.get("location"));
- dhcpWriter.println("host "+netObject.get("dnsName")+" {");
- dhcpWriter.println("\t\thardware ethernet "+netObject.get("MAC")+";");
- dhcpWriter.println("\t\tfixed-address "+ netObject.get("ipAddress")+";");
- dhcpWriter.println("\t\t}");
- }//if
- else {
- log(DebugLevelType.MEDIUM,"Nincs DHCP adat "+ rowIndex +". sorban.");
- }
- //DNS
- if (netObject.get("ipAddress") !=null && netObject.get("ipAddress").trim().length()>0
- && netObject.get("dnsName") != null && netObject.get("dnsName").trim().length()>0) {
- //DNS
- dnsWriter.println(netObject.get("dnsName")+"\t\tIN\tA\t"+netObject.get("ipAddress")+"\t;"
- +netObject.get("user")+" -- "+netObject.get("category")+" -- "+netObject.get("location"));
- //Reverse DNS
- String[] splitedAddress=netObject.get("ipAddress").split("[.]");
- reverseWriter.println(splitedAddress[3]+"."+splitedAddress[2]+"."+splitedAddress[1]+"."+splitedAddress[0]+
- ".in-addr.arpa.\tIN\tPTR\t"+netObject.get("dnsName")+".intranet.");
- }//if
- else {
- log(DebugLevelType.MEDIUM,"Nincs DNS adat "+ rowIndex +". sorban.");
- }
- } //if (MAC.length()>0 && validateMac)
- else {
- if (MAC.length()==0) log(DebugLevelType.LOW, "Nincs MAC megadva a "+ rowIndex +"sorban.");
- else log(DebugLevelType.LOW, "Hibás a MAC a "+ rowIndex +". sorban.");
- }//else (MAC.length()>0 && validateMac)
- } //for
- dhcpWriter.close();
- dnsWriter.close();
- reverseWriter.close();
- radiusWriter.close();
- } catch (Exception ioe) {
- ioe.printStackTrace();
- } // catch
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment