大家好,公司要求做一个服务器,其中有些配置文件需要写个程序解析,请问这种文件应该如何解析,有什么好方法吗?没做过这种东西,不知道应该怎么处理,请大家给点思路,谢谢
以下是文件的部分内容:
class "sysadm" {
match option dhcp-client-identifier;
}
subclass "sysadm" 1:00:0d:56:b8:2d:6c;
subclass "sysadm" 1:00:90:96:b8:5f:9d;
class "cisco" {
if substring(option dhcp-client-identifier,0,6)="1:00:00:1E" ;
}
class "motorola" {
if substring(option dhcp-client-identifier,0,6)="1:00:01:E8" ;
}
subnet 192.168.6.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.6.255;
option routers 192.168.6.1;
pool {
allow members of "cisco";
range 192.168.6.100 192.168.6.200;
}
pool {
allow members of "motorola";
range 192.168.6.200 192.168.6.220;
}
pool {
allow members of "sysadm";
range 192.168.6.240 192.168.6.241;
}
}
[b]问题补充:[/b]
解析之后,需要保存到LDAP服务器里,内容如下
dn: cn=sysadm_class, dc=jm-data; dc=at
objectclass: dhcpClass
cn: sysadm_class
dhcpStatements: match 61;
dhcpSubClassesDN: cn=sysadm_subclass1, dc=jm-data; dc=at
dhcpSubClassesDN: cn=sysadm_subclass2, dc=jm-data; dc=at
dn: cn=sysadm_subclass1, dc=jm-data; dc=at
objectclass: dhcpSubClass
cn: sysadm_subclass1
dhcpClassData: 1:00:0d:56:b8:2d:6c
dn: cn=sysadm_subclass2, dc=jm-data; dc=at
objectclass: dhcpSubClass
cn: sysadm_subclass2
dhcpClassData: 1:00:0d:56:b8:2d:6c
dn: cn=cisco_class, dc=jm-data; dc=at
objectclass: dhcpClass
cn: sysadm_class
dhcpStatements: if substring(61,0,6)="1:00:00:1E" ;
dn: cn=motorola_class, dc=jm-data; dc=at
objectclass: dhcpClass
cn: sysadm_class
dhcpStatements: if substring(61,0,6)="1:00:01:E8" ;
在配置文件和LDAP数据之间应该有Java的类作为共同的一个映射
例如:
[code="java"]
public class DhcpClass{
String dhcpStatements;
String cn;
String dn;
}
[/code]
我的目的也只是想可以解析配置文件到一个类中,不求具体过程,只希望能提供一个思路即可。
谢谢
[b]问题补充:[/b]
这个配置文件其实是DHCP的配置文件,结构比较松散的,有一定的语法规则,但是手动写的话费时费力,实在不是什么好办法。