📄 checkversion
字号:
#!/usr/bin/perl
##########################################################################
# Athena梡僒乕僶乕僶乕僕儑儞強摼僣乕儖
#
# 丂婲摦拞偺Athena偺奺僒乕僶乕偵愙懕偟偰忣曬傪昞帵偡傞
#
#-------------------------------------------------------------------------
# ./checkversion IP:port 偲偟偰巊梡偟傑偡
# ./checkversion IP port 偱傕摦偒傑偡
#
# 丂惉岟偡傞偲僐乕僪侽偱廔椆偟傑偡
#
##########################################################################
$connecttimeout=10; # 愙懕僞僀儉傾僂僩(昩)
#-------------------------------愝掕偙偙傑偱-----------------------------
use IO::Socket;
unless($ARGV[0]){
print "USAGE: $0 server:port\n";
exit(1);
}
$server=$ARGV[0];
$port=$ARGV[1];
$port=$1 if($server=~s/:(\d+)//);
$port||=6900;
# 僒乕僶乕偵愙懕偡傞
my($so,$er)=();
eval{
$so=IO::Socket::INET->new(
PeerAddr=> $server,
PeerPort=> $port,
Proto => "tcp",
Timeout => $connecttimeout) or $er=1;
};
if($er || $@){
print "Cant connect to server [$server:$port] !\n";
exit(2);
}
# 忣曬梫媮
print $so pack("v",30000);
$so->flush();
# 強摼
if( read($so,$buf,10)<10 ){
print "socket read error. not athena or too old version ?\n";
exit(5);
}
# 愗抐梫媮
print $so pack("v",30002);
$so->flush();
# 僷働僢僩夝愅
my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver)=unpack("v c6 v",$buf);
if($ret!=30001){
print "server error. not athena or too old version ?\n";
exit(6);
}
print "[$server:$port]\n";
printf "Athena %s-%d.%d", ("stable","dev")[$dev], $maver,$miver;
printf ".%d",$rev if $rev;
printf "%s%d\n",("","-mod")[$mod],$mdver;
my(@stype)=();
foreach $i(0..3){
push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) );
}
print join("/",@stype)." server.\n";
exit(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -