📄 getlogincount
字号:
#!/usr/bin/perl########################################################################### Athena梡儘僌僀儞恖悢強摼僣乕儖## 丂婲摦拞偺Athena偺login.exe偵愙懕偟偰儘僌僀儞恖悢傪強摼偡傞僣乕儖##-------------------------------------------------------------------------# 愝掕曽朄# 丂儘僌僀儞嶪偺IP丄億乕僩丄桳岠側傾僇僂儞僩傪惓偟偔愝掕偟傑偡.# 丂愝掕偟偨傜 getlogincount 偱慡僒乕僶乕偺恖悢儕僗僩丄# 丂getlogincount --first 偱堦斣僒乕僶乕偺恖悢丄# 丂getlogincount [servername] 偱巜掕偟偨僒乕僶乕偺恖悢傪昞帵偟傑偡## 丂惉岟偡傞偲僐乕僪侽偱廔椆偟傑偡###########################################################################$loginserverip="127.0.0.1"; #儘僌僀儞嶪偺IP$loginserverport=6900; #儘僌僀儞嶪偺億乕僩$loginaccount="s1"; #傾僇僂儞僩$loginpasswd="p1"; #僷僗儚乕僪$connecttimeout=10; # 愙懕僞僀儉傾僂僩(昩)#-------------------------------愝掕偙偙傑偱-----------------------------use IO::Socket;$sname=$ARGV[0];# 僒乕僶乕偵愙懕偡傞my($so,$er)=();eval{ $so=IO::Socket::INET->new( PeerAddr=> $loginserverip, PeerPort=> $loginserverport, Proto => "tcp", Timeout => $connecttimeout) or $er=1;};if($er || $@){ print "Cant connect to login server [${loginserverip}:$loginserverport] !\n"; exit(2);}#儘僌僀儞梫媮print $so pack("v V a24 a24 C",0x0064,9,$loginaccount,$loginpasswd,3);$so->flush();# 惉岟偟偰側偄if(unpack("v", &soread(\$so,2) )!=0x0069){ print "login error.\n"; exit(3);}# 僷働僢僩偺挿偝強摼$plen=unpack("v",&soread(\$so,2))-4;# 傾僇僂儞僩忣曬僗僉僢僾&soread(\$so,43);$plen-=43;# 僒乕僶乕忣曬撉傒崬傒my(@slist)=();for(;$plen>0;$plen-=32){ my($name,$count)=unpack("x6 a20 V",&soread(\$so,32)); $name=substr($name,0,index($name,"\0")); push @slist, [ $name, $count ];}# 寢壥昞帵if($sname eq "--first"){ print $slist[0][1]; } # 堦斣嵟弶偺僒乕僶乕elsif($sname eq ""){ # 慡偰偺僒乕僶乕偺儕僗僩 foreach $i(@slist){ printf "%-20s : %5d\n",$i->[0],$i->[1]; }}else{ # 巜掕偟偨僒乕僶乕 my($flag)=1; foreach $i(@slist){ if($i->[0] eq $sname){ print $i->[1]; $flag=0; } } exit(1) if($flag); # 巜掕偟偨僒乕僶乕偑懚嵼偟側偄}# 愗抐$so->shutdown(2);$so->close();exit(0);# 僜働僢僩撉傒弌偟娭悢sub soread { my($so,$len)= @_; my($sobuf); if( read($$so,$sobuf,$len)<$len){ print "socket read error.\n"; exit(5); } return $sobuf;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -