Perl
发布时间:2022-04-07 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用perl socket 在WINDOWS DHCP服务上 实现ip绑定,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
450_0@#!/usr/bin/perl
#server.pl
#use
Strict;
use Socket;
use constant I
paddr => '192.168.1.254';
use constant PORT => 4000;
use constant MAX_RECV_LEN => 100;
my $local_host = gethostbyname(I
paddr);
my $local_port = PORT;
my $proto = getprotobyname('udp'
);
my $local_addr = sockaddr_in($local_port,$local_host
);
socket(DHCP_SOCK,PF_INET,SOCK_DGRAM,$proto) or die "socket() failed: $!";
bind(DHCP_SOCK,$local_addr
);
my $all;
my $myall=[];
while( 1 )
{
my $my_all = recv( DHCP_SOCK,$all,MAX_RECV_LEN,0 ) or warn "Problem with recv all";
@myall=split(/;/,$all
);
my $i
paddr =
@myall
[0];
my $macaddr =
@myall[1];
my $net =
@myall[2];
my $opt =
@myall
[3];
my $username =
@myall[4];
if ( $my_all )
{
# my( $the_port,$the_ip ) = sockaddr_in( $my_all
);
#system("(echo %date:~0,10% %time:~0,5% ip:$i
paddr,mac:$macaddr,net:$net,opt:$opt,user:$username )"
);
system("(echo %date:~0,user:$username >> e:\\bat\\dhcp_debug.log )"
);
if ( $opt eq 'addmac')
{
system("(echo %date:~0,5% add $i
paddr $macaddr $username >> e:\\bat\\dhcp_server.log )"
);
system("(netsh dhcp server scope $net add reservedip $i
paddr $macaddr $username $username BOTH ||echo %date:~0,5%
false add >> e:\\bat\\dhcp_server.log)"
);
}
elsif ( $opt eq 'rmvmac')
{
system("(echo %date:~0,5%
delete $i
paddr $macaddr >> e:\\bat\\dhcp_server.log )"
);
system("(netsh dhcp server scope $net
delete reservedip $i
paddr $macaddr ||echo %date:~0,5%
false
delete >> e:\\bat\\dhcp_server.log )"
);
}
}
else
{
warn "Problem with recv: @!\n";
}
}
大佬总结
以上是大佬教程为你收集整理的使用perl socket 在WINDOWS DHCP服务上 实现ip绑定全部内容,希望文章能够帮你解决使用perl socket 在WINDOWS DHCP服务上 实现ip绑定所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。