begin
--构建结果表
t_ip := select adapter,dns_suffix,ip_address,subnet_mask,gateway from serial(1,0);
--初始化变量
v_adapter := '';
v_dns_suffix := '';
v_ip_address := '';
v_subnet_mask := '';
v_gateway := '';
--计数器
n := -1;
--分析调用操作系统命令后的输出
for i in (select * from split(oscmd('ipconfig'),'/n') where trim(f1) != '') loop
if mod(n,5) = 0 then
v_adapter := substr(i.f1,18);
v_adapter := substr(v_adapter, 1, length(v_adapter) - 1);
elsif mod(n,5) = 1 then
v_dns_suffix := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 2 then
v_ip_address := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 3 then
v_subnet_mask := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 4 then
v_gateway := substr(i.f1,instr(i.f1,':') + 1);
--插入记录
insert into t_ip (adapter,dns_suffix,ip_address,subnet_mask,gateway)
values (v_adapter,v_dns_suffix,v_ip_address,v_subnet_mask,v_gateway);
end if;
n := n + 1;
end loop;
select * from t_ip;
end;
--构建结果表
t_ip := select adapter,dns_suffix,ip_address,subnet_mask,gateway from serial(1,0);
--初始化变量
v_adapter := '';
v_dns_suffix := '';
v_ip_address := '';
v_subnet_mask := '';
v_gateway := '';
--计数器
n := -1;
--分析调用操作系统命令后的输出
for i in (select * from split(oscmd('ipconfig'),'/n') where trim(f1) != '') loop
if mod(n,5) = 0 then
v_adapter := substr(i.f1,18);
v_adapter := substr(v_adapter, 1, length(v_adapter) - 1);
elsif mod(n,5) = 1 then
v_dns_suffix := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 2 then
v_ip_address := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 3 then
v_subnet_mask := substr(i.f1,instr(i.f1,':') + 1);
elsif mod(n,5) = 4 then
v_gateway := substr(i.f1,instr(i.f1,':') + 1);
--插入记录
insert into t_ip (adapter,dns_suffix,ip_address,subnet_mask,gateway)
values (v_adapter,v_dns_suffix,v_ip_address,v_subnet_mask,v_gateway);
end if;
n := n + 1;
end loop;
select * from t_ip;
end;

本文介绍了一种通过解析操作系统命令输出来构建网络配置信息表的方法。该方法利用循环和条件判断从命令行输出中提取适配器名称、DNS后缀、IP地址、子网掩码及默认网关等关键信息,并将这些信息存储到结果表中,便于后续的数据管理和分析。
2630

被折叠的 条评论
为什么被折叠?



