用perl写的单位电脑信息采集程序
用perl写的单位电脑信息采集程序
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:主要用于收集ip、mac、姓名、房间,后来又加入了维修记录的功能。服务器端接受数据并存入数据库中。############...

用perl写的单位电脑信息采集程序1

复制代码 代码如下:

主要用于收集ip、mac、姓名、房间,后来又加入了维修记录的功能。服务器端接受数据并存入数据库中。

#############################

usestrict;

useTk;

useEncode;

#SOCKE参数

my$PF_INET=2;

my$port=2345;

my$remote_addr=pack('SnC4x8',$PF_INET,$port,192,168,138,228);

my$SOCK_DGRAM=2;

#Frame

my($label_room,$label_name,$label_ctrl,$label_notice);

#确定、取消

my($enter,$cancel);

#房间、姓名变量

my($room,$name);

$room='';

$name='';

#主界面

my$mw=MainWindow->new(-title=>hanzi('信息收集'));

$mw->minsize(qw/200100/);

$mw->maxsize(qw/200100/);

#三个Frame

$label_room=$mw->Frame(qw/-borderwidth2-reliefgroove/)->pack(qw/-sidetop-fillboth/);

$label_name=$mw->Frame(qw/-borderwidth2-reliefgroove/)->pack(qw/-sidetop-fillboth/);

$label_ctrl=$mw->Frame(qw/-borderwidth2-reliefgroove/)->pack(qw/-sidetop-fillboth/);

#房间号码输入

$label_room->Label(-text=>hanzi('房间号码'))->pack(qw/-sideleft-expand1/);

$label_room->Entry(-textvariable=>$room,-relief=>'groove')->pack(qw/-sideright-expand1/);

#姓名输入

$label_name->Label(-text=>hanzi('姓名'))->pack(qw/-sideleft-expand1/);

$label_name->Entry(-textvariable=>$name,-relief=>'groove')->pack(qw/-sideright-expand1/);

#确定与重置

$enter=$label_ctrl->Button(-text=>hanzi('确定'),-command=>&enter)->pack(qw/-sideleft-expand1/);

$cancel=$label_ctrl->Button(-text=>hanzi('重置'),-command=>&cancel)->pack(qw/-sideright-expand1/);

#提示

$label_notice=$mw->Label(-text=>hanzi('欢迎使用'),-relief=>'groove',-background=>'#FFFF99')->pack(qw/-sidebottom-fillx/);

MainLoop();

#汉字解码

subhanzi{

returndecode('gb2312',shift);

}

#确定函数

subenter{

chomp($room);

chomp($name);

$room=~s/^s+//;

$name=~s/^s+//;

if($roomeq''or$nameeq''){

$label_notice->configure(-text=>hanzi('输入不能为空'));

return0;

}#if

else{

open(IPCF,'-|',"ipconfig-all");

my($mac_addr,$ip_addr,$out_buffer);

while(<IPCF>){

chomp;

if($_=~s/(.*)(00(-[0-9A-Z]{2}){5})(.*)/$2/){

$mac_addr=join('',split(/-/,$_));

}

if($_=~/IPAddress/){

$_=~s/(.*)([0-9]{3}(.[0-9]{1,3}){3})(.*)/$2/;

$ip_addr=$_;

}

}#while

$out_buffer=$room."t".$mac_addr."t".$ip_addr."t".encode('utf8',$name);

socket(UDP_CLIENT,$PF_INET,$SOCK_DGRAM,getprotobyname('udp'));

send(UDP_CLIENT,$out_buffer,0,$remote_addr);

close(UDP_CLIENT);

close(IPCF);

$mw->destroy();

}#else

}

#重置函数

subcancel{

$label_notice->configure(-text=>hanzi('重置为空'));

$room='';

$name='';

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新perl学习
热门perl学习
脚本专栏子分类